Operaciones con listas y diccionarios en python
Autor
Vanessa ReteguínLista
Tipo de dato que consiste en colecciones ordenadas de elementos
Ejemplo:
tacos = ["pastor", "bisteck", "arrachera"]
Imprimir elementos de una lista
tacos = ["pastor", "bisteck", "arrachera"]
for i in tacos:
print(i)
pastor
bisteck
arrachera
Obsérvese que no fue necesario declarar la variable i afuera del cliclo ni declararlo como iterador (como en otros lenguajes como C++)
Obtener un elemento de la lista
tacos = ["pastor", "bisteck", "arrachera"]
print(tacos[0])
pastor
Obtener el último elemento de la lista
tacos = ["pastor", "bisteck", "arrachera"]
print(tacos[-1])
arrachera
Sequence slicing [inicio:fin:paso]
Es posible extraer a elementos específicos de una lista en python directamente de desde los índices
tacos = ["pastor", "bisteck", "arrachera", "asada", "adobada", "chorizo", "birria", "pescado", "pollo"]
print(tacos[1:-1:2])
['bisteck', 'asada', 'chorizo', 'pescado']
tacos[1:-1:2]
1: Elemento en el que inicia tacos[1] "bisteck"
(No se cuenta lo anterior)
tacos = ["pastor", "bisteck", "arrachera", "asada", "adobada", "chorizo", "birria", "pescado", "pollo"]
-1: Elemento en el que termina tacos[-1] "pollo"
(No se cuenta lo que sigue)
tacos = ["pastor", "bisteck", "arrachera", "asada", "adobada", "chorizo", "birria", "pescado", "pollo"]
2: Cantidad de elemento que pasa
(¿cuántos elementos debo saltar hasta el siguiente elemento que sí se cuenta?)
tacos = ["pastor", "bisteck", "arrachera", "asada", "adobada", "chorizo", "birria", "pescado", "pollo"]
Lista final: tacos = ["bisteck", "asada", "chorizo", "pescado"]
Lista de listas
Una lista es un conjunto de elementos, esos elementos pueden ser de cualquier tipo. Por lo tanto, podemos crear una lista de listas:
tacos = ["pastor", "bisteck", "arrachera"]
aguas = ["horchata", "jamaica", "limón"]
menu = [tacos, aguas]
print(menu)
[['pastor', 'bisteck', 'arrachera'], ['horchata', 'jamaica', 'limón']]
Métodos principales
list.append(elem)
Agregar un elemento a la lista
tacos = ["pastor", "bisteck", "arrachera"]
tacos.append("asada")
print(tacos)
['pastor', 'bisteck', 'arrachera', 'asada']
list.insert(index, elem)
tacos = ["pastor", "bisteck", "arrachera"]
tacos.insert(2, "asada")
print(tacos)
['pastor', 'bisteck', 'asada', 'arrachera']
list.extend(list2)
tacos = ["pastor", "bisteck", "arrachera"]
more_tacos = ["lechón", "chicharrón", "lengua", "sesos"]
tacos.extend(more_tacos)
print(tacos)
['pastor', 'bisteck', 'arrachera', 'lechón', 'chicharrón', 'lengua', 'sesos']
list.index(elem)
tacos = ["pastor", "bisteck", "arrachera"]
print(tacos.index("arrachera"))
2
list.remove(elem)
tacos = ["pastor", "bisteck", "arrachera"]
tacos.remove("bisteck")
print(tacos)
['pastor', 'arrachera']
list.sort()
Nótese cómo todos los elementos de la lista han sido ordenados alfabéticamente
tacos = ["bisteck", "pastor", "arrachera", "lechón"]
tacos.sort()
print(tacos)
['arrachera', 'bisteck', 'lechón', 'pastor']
list.reverse()
tacos = ["bisteck", "pastor", "arrachera", "lechón"]
tacos.reverse()
print(tacos)
['lechón', 'arrachera', 'pastor', 'bisteck']
list.pop(index)
Eliminar un elemento en un índice indicado
tacos = ["pastor", "bisteck", "arrachera"]
tacos.pop(1)
print(tacos)
['pastor', 'arrachera']
Diccionario
Tipo de dato que almacena información de la forma valor:par {Key:value}
phrases = {
"DUNE": "Fear is the mind killer",
"Star Wars": "May the force be with you"
}
print(phrases)
{'DUNE': 'Fear is the mind killer', 'Star Wars': 'May the force be with you'}
Imprimir elementos de un diccionario
Obsérvese cómo es que para acceder a un elemento específico es necesario indicar su key, llave o índice
phrases = {
"DUNE": "Fear is the mind killer",
"Star Wars": "May the force be with you"
}
print(phrases["DUNE"])
Fear is the mind killer
Iterar sobre un diccionario
Imprimir llaves (keys)
Obsérvese como es que nuestro iterador i es meramente la llave de nuestro diccionario, más no el elemento per se
phrases = {
"DUNE": "Fear is the mind killer",
"Star Wars": "May the force be with you"
}
for i in phrases:
print(i)
DUNE
Star Wars
Imprimir datos respecto a una llave
phrases = {
"DUNE": "Fear is the mind killer",
"Star Wars": "May the force be with you"
}
for i in phrases:
print(phrases[i])
Fear is the mind killer
May the force be with you
Editar/agregar un elemento a un diccionario
phrases = {
"DUNE": "Fear is the mind killer",
"Star Wars": "May the force be with you"
}
phrases["Toy Story"] = "To the infinite and beyond"
print(phrases)
{'DUNE': 'Fear is the mind killer', 'Star Wars': 'May the force be with you', 'Toy Story': 'To the infinite and beyond'}
Diccionarios dentro de listas
starwars = [
{
"name": "Anakin Skywalker",
"forceSensitive": True,
"kids": ["Luke", "Leia"]
},
{
"name": "Bo-Katan Kryze",
"forceSensitive": False,
"kids": None
}
]
print(starwars)
print(starwars[1]["name"])
[{'name': 'Anakin Skywalker', 'forceSensitive': True, 'kids': ['Luke', 'Leia']}, {'name': 'Bo-Katan Kryze', 'forceSensitive': False, 'kids': None}]
Bo-Katan Kryze
Listas dentro de diccionarios
cities = {
"France": ["Paris", "Lille", "Dijon"],
"Germany": ["Berlin", "Hamburg", "Stuttgart"],
}
print(cities)
print(cities["Germany"][1])
{'France': ['Paris', 'Lille', 'Dijon'], 'Germany': ['Berlin', 'Hamburg', 'Stuttgart']}
Hamburg
Diccionario dentro de un diccionario
movies_rating = {
"The Phantom Menace": {
"main_planets": ["Tatooine", "Naboo", "Coruscant"],
"score": 8.2
},
"The Revenge of the Sith": {
"main_planets": ["Mustafar", "Kashyyyk", "Coruscant"],
"score": 9.3
}
}
print(movies_rating)
print(movies_rating["The Revenge of the Sith"]["main_planets"][1]) # Kashyyyk
{'The Phantom Menace': {'main_planets': ['Tatooine', 'Naboo', 'Coruscant'], 'score': 8.2}, 'The Revenge of the Sith': {'main_planets': ['Mustafar', 'Kashyyyk', 'Coruscant'], 'score': 9.3}}
Kashyyyk