Listas en python
Listas en python |
Las listas son un tipo de colección ordenada y se asemejan
mucho o son el equivalente en otros lenguajes de programación a lo que se conoce como arreglos
o vectores.
Esta entrada la hago con el fin de ir completando mi tutorial python (lo aclaro porque en otras entradas ya he tocado el tema listas).
En python estas listas pueden contener enteros, booleanos, cadenas
de texto, flotantes o inclusive listas. Los elementos de una lista van
encerrados entre corchetes ([]) y separados por comas cada uno de ellos de la
siguiente forma:
Ejemplo de nuestra primera lista en python:
elementos: un entero (1), una cadena de texto (“dos”), un booleano (False) y
otra lista con dos elementos (un entero 45 y una cadena de texto “cien”).
Como acceder a los elementos de una lista
comienza con el numero 0 para el elemento numero 1. En nuestra lista (lista) el
índice 0 corresponde al elemento (1), la cadena de texto que contiene la
palabra “dos” seria el elemento número dos de la lista pero contiene el índice
1 y así sucesivamente con los demás elementos de la lista.
Ejemplo para acceder a un elemento de la lista
variable num el elemento con índice uno de la lista (lista), en este caso
(“dos”), por lo tanto la variable num va a contener la cadena de texto “dos”.
Ahora, para que nos muestre el contenido de nuestra nueva variable, solo tendremos que pedirlo con un print:
print num
Acceder a un elemento de la lista en python |
Ahora, como hacemos para acceder a los elementos de una lista que están dentro de otra lista?
Ejemplo: quiero acceder al primer elemento de la lista que esta dentro de la lista (lista):
lista = [1, “dos”, False, [45, “cien”]]
El elemento 4 de la lista (lista) es otra lista. Como dije anteriormente, los indices se empiezan a contar desde el 0, por lo tanto el indice del elemento 4 es el 3. Y como el elemento 4 también es una lista voy a poder acceder a sus elementos por sus indices, en este caso al indice 0 porque queremos interactuar con el primer elemento.
num = lista[3][0] #Ahora num vale 45
Cambiar o modificar elementos de una lista:
Particionar una lista
Por ejemplo, si nosotros queremos ver solo una porción de la lista tendríamos que hacer lo siguiente:
[inicio:fin]
lista = [1, “dos”, False, [45, “cien”]]
#Por ejemplo, para ver los primeros tres elementos de la lista (lista)
ejemplo = lista[0:3]
print ejemplo
Aqui lo que hacemos es asignarle a ejemplo los primeros 3 elementos de la lista (lista), o sea, los elementos desde el indice 0 al 3, este ultimo no se incluye.
Si en lugar de ejemplo = lista[0:3] hacemos ejemplo = lista[0:]
Asigna desde el elemento 0 hasta el final de la lista porque no indicamos fin. Lo mismo seria si no indicamos un inicio: ejemplo = lista[:3], asignamos desde el comienzo.
Si nosotros queremos ver algunos elementos, ejemplo: uno si uno no hacemos lo siguiente:
[inicio:fin:salto]
lista = [1, “dos”, False, [45, “cien”]]
ejemplo = lista[0:3:2] #Con el 2 saltea de uno en uno
print ejemplo
Jugando con los elementos de una lista en python |
También podemos modificar una fracción de una lista de la siguiente manera:
lista = [1, “dos”, False, [45, “cien”]]
lista[0:2] = [5, "mil"]
Si imprimimos la lista nos queda de la siguiente manera:
5, "mil", False, [45, "cien"]
Como los dos primeros elementos de la lista (lista) son 1 y "dos", se van a modificar por los elementos que hemos indicado nosotros: 5 y "mil".
Mencionar también que podemos trabajar con indices negativos, muy útiles a la hora de saber nuestro ultimo elemento de la lista, recorrer una lista de atrás hacia adelante, etc. Vamos a ver un ejemplo:
nombres = ["Diego", "Carlos", "Martin", "Lorena", "Natalia"]
print nombres[-1] #Nos devuelve el ultimo elemento de nuestra lista
Funciones y métodos para trabajar con listas
La función len() cuenta los elementos de una lista, ejemplo:
>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>len(estudiantes)
3
Añadir elementos a una lista con el método insert(indice, objeto)
El método insert espera un indice y el valor a agregar, ejemplo:
>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.insert(0, "Maria")
>>>print estudiantes
["Maria", "Jose", Raul", "Marcelo"]
Añadir elementos a una lista con el método append(objeto)
>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.append("Mariela")
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Mariela"]
Añadir varios elementos a una lista con el método extend(segmento)
>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.extend(["Dario", "Natalia"])
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Dario", "Natalia"]
Buscar elementos de una lista con el método index(objeto)
>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.index("Raul")
1 #Retorna el índice del elemento "Raul"
Eliminar un elemento de la lista con el método remove(objeto)
Convertir cadenas en una lista con el método split()
Con el método split() podemos convertir una cadena de caracteres en una lista delimitada por los índices que indiquemos. Si no se indica nada se utilizan los espacios:
>>>"Hola mi nombre es Diego".split()
["Hola","mi","nombre","es","Diego"]
>>>"1-2-3-4-5-6".split("-")
["1","2","3","4","5","6"]
Buscar y saber si hay elemento duplicados con el método set()
>>>estudiantes = ["Martin", "Jose", "Raul", "Jose"]
>>>estudiantes_unicos = list(set(estudiantes))
>>>print estudiantes_unicos
["Raul", "Jose", "Martin"]
Veamos un ejemplo con una función:
def duplicado(lista):
new_list = list(set(lista))
if len(new_list) != len(lista):
return True #Retorna True si hay duplicados
else:
return False #Retorna False si no hay duplicados
Con el método pop(), podremos eliminar y mostrar el ultimo elemento de la lista, ejemplo:
Saber cuantas veces se repite un elemento de una lista con el método count(objeto)
2
Invertir una lista con el método reverse()
Bueno, espero tengan una buena base para empezar a meter mano con las listas en python.
-
-
Hola, gracias por visitar el blog!!! Has pensado alguna solución? Porque no se resuelven ejercicios, tratamos de ayudar a pensar. Si tienes algo de código puedes publicarlo. Saludos!!!
-
-
Muchisimas gracias! muy bien explicado
-
Hola Diego estoy siguiendo tus Tutoriales pero me porque en al facultad tengo Fundamentos de la programación, pero los problemas que dan a veces me traen dolor de cabeza y no puedo sacarlo. Si me ayudarías aunque sea con una parte del código te agradecería.
Escribir una función denominada “cuantos_días” que reciba el número de mes como parámetro y retorne la cantidad de días que posee. Ejemplo: cuantos_días(1), debería retornar 31
#!/usr/bin/env python
# -*- coding: utf-8 -*-def cuantos_dias(mes):
mes=[["Enero",31],["Febrero",29],["Marzo",31],["Abril",30],["Mayo",31],["Junio",30],["Julio",30],["Agosto",31],["Octubre",31],["Noviembre",30],["Diciembre",31]]
print mes[0][1]cuantos_días(1)
-
Hola Ramiro, gracias por visitar el blog. La idea es hacerlo si o si con listas? Saludos
-
def cuantos_dias(x): # x sera el numero que pase como parametro, ejemplo 12 (diciembre)
----mes=[["Enero",31],["Febrero",29],["Marzo",31],["Abril",30],["Mayo",31],["Junio",30],["Julio",30],["Agosto",31],["Setiembre", 30],["Octubre",31],["Noviembre",30],["Diciembre",31]]
----if (x <= 0) or (x >12): # si el numero es menor a cero o mayor a 12 no es un mes
--------print "No es un mes valido"
----else:
--------print mes[x - 1][1] #El primer [] resta el numero ingresado - 1 para obtener el indice de la lista, el segundo [] obtiene el segundo elemento de cada sublista# Espero se entienda, Saludos, Diego
cuantos_dias(12)Los guiones (-) son para que respetes la sangria.
-
Gracias Diego sos un Genio. Voy a seguir tus tutoriales.
-
-
Hola Diego
Como puedo hacer para que la consola me entregue el valor que mas se repite dentro de una lista
Por ejemplo tengo la lista [1,4,4,6,3,4,2] y quiero que me entregue como resultado 4-
Hola Domingo, el método count cuenta cuantas veces se repite cierto elemento en una lista. En tu ejemplo: lista.count(4) daría como resultado 3. Se me ocurre que podrías hacer un for que recorra toda tu lista y vaya guardando en una variable el elemento que más se repite de la lista. Saludos 😉
-
-
Escriba un programa que permita crear una lista de palabras. Para ello, el programa tiene que pedir un número y luego solicitar ese número de palabras para crear la lista. Por último, el programa tiene que escribir la lista.
como se hace?-
Hola Gorkabeefie, gracias por visitar el blog!!!
Has podido realizar algo del ejercicio? Puedes publicarlo como comentario para poder ayudarte!!!
Saludos
-
-
hola diego tal vez me puedas ayuda, necesito que a un cantidad de numeros ingresados por el usuario el sistema imprima lista y luego el inverso
a=[]
tras=[]
lista=[]
matriz=[]
elementos=int(input("Cuantos elementos tendra la lista:"))
sub=int(input("Cuantos elementos tendran las listas internas:"))
for k in range(elementos):
lista.append([])
for x in range(sub):
valor=int(input("Ingrese valor:"))
lista[k].append(valor)print(lista)
saludos
-
Hola Diego. Estoy comenzando el tutorial sin tener ni pizca idea de programación.
Puse:
ista=[1,“dos”,False,[45,“cien”]]num=lista[1]
print num
En el IDE cuando llego a la parte de "print num" me sale lo siguiente:
File "prueba 4.py", line 1
SyntaxError: Non-ASCII character 'xe2' in file prueba 4.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details------------------
(program exited with code: 1)
Press return to continue(He probado haciendo copia/pega directamente desde tu blog y poniendo todo sin espacios, pero pasa lo mismo)
¿Sabes cual podría ser el error?
-
Ya lo he solucionado, al volver a escribirlo a mano todo, me ha salido tal cual.
-
Excelete, saludos y gracias por pasarte por el blog
-
-
Muchas gracias Diego!
Tu blog es oro
-
Hola Diego, te hago una consulta, para eliminar duplicados usaste el metodo set(), sin embargo antepusiste el metodo list().
Que hace ese metodo? Hice la prueba de usar solo set() y me elimino los duplicados correctamente (sin hacer uso de list().
desde ya muchas gracias -
Hola amigo, gracias por los conocimientos que entregas, hice el ejercicio de copiar y pegar el script que reemplaza "dos" por 5, pero me lanzo unos errores y me di cuenta de q la sintaxis no estaba bien, lo correcto seria esto:
lista = ['1', 'dos', 'False', [45, 'cien']] #Definimos la lista
print lista
lista[1] = 5 #Asociamos el numero 5 al elemento con indice 1 de la lista
num = lista[1] #Le asignamos a la variable num el elemento con indice uno de la lista
print num #Para ver el cambio del nuevo elementoprint lista #Para ver como quedaría la lista con el cambio
PD: Es efectivamente un error el como escribiste ese script?
bueno muchas gracias, adios. -
Hola Diego me gustaría saber que función se puede usar para el siguiente problema: Debo mirar si se repite algún dato y si se repite, tomar el primer dato ingestado y eliminar el resto.
Muchas gracias, feliz tiempo. -
como ordenar una lista bro"
-
Hola diego soy nuevo en esto de la programacion y pues me estanque en esta funcion: Escribe una función llamada "inversa" que busque todas las palabras inversas de una lista.
Ejemplo de palabras inversas: radar, oro, rajar, rallar, salas, somos, etc.
busco bibliografia y no encuentra la funcion inversa-
Hola, seguramente en esta sección que te dejo abajo ya haya algún ejercicio parecido. Gracias por escribir.
https://www.pythondiario.com/p/ejercicios-de-programacion-python.html
-
-
Alguien me podría ayudar con este ejercicio (realice un programa que pida 10 números y los guarde en dos listas diferentes)
Deja una respuesta
hola, quiserea saber como solicitar al usuario ingresar datos ren una lista, osea "Cree un programa en Python 3.4 que le solicite al usuario ingresar una lista (mínimo con un elemento), una palabra y un número"