Las listas, los conjuntos, las tuplas y los diccionarios se pueden iterar, esto es recorrer cada uno de sus elementos, de manera muy simple.
# A grandes rasgos serÃa asÃ:
for <variable> in <iterable>:
<cosas para hacer>
# Con un ejemplo:
lenguajes = ['Java', 'NET', 'C', 'Python']
for lenguaje in lenguajes:
print(lenguaje)
# y el resultado serÃa
... Java
... NET
... C
... Python
El for de python también se puede combinar con else para no tener que usar una variable de tipo flag:
amigos = ["juan", "judas", "jose", "pablo"]
for amigo in amigos:
if amigo == "judas":
print("Traidores no!")
break
print("Un gran amigo es {}!".format(amigo))
else:
print("Tengo que rever mi lista de amigos!")
print("Me imprimo igual porque estoy afuera del for")
Para recorrer diccionarios:
# Python 2
d = {'juan': 29, 'pedro': 33, 'ezequiel': 53}
for key, value in d.iteritems()::
print "{} tiene {}".format(key, value)
# Python 3
d = {'juan': 29, 'pedro': 33, 'ezequiel': 53}
for key, value in d.items()::
print "{} tiene {}".format(key, value)
En python 3.x, iteritems()
se reemplazo por items()
y devuelve un conjunto, set, de las claves del diccionario. Se dice que actua como vista porque cambia si cambian las claves del diccionario "observado". Esta función también está disponible en python
2.7 con el nombre: viewitems()
.
Los conjuntos tienen la ventaja de no tener elementos repetidos. Si convertimos una lista por ejemplo con 5 numeros 1, el resultado va a ser un conjunto de un solo elemento:
numeros = [1, 1, 1, 1, 3, 3, 2]
conjunto_de_numeros = set(numeros)
print(conjunto_de_numeros)
>> {1, 2, 3}
Si queremos agregar un elemento usamos el metodo add.
conjunto = set([2, 2, 3, 4, 5])
conjunto.add(7)
# Si queremos preguntar cosas
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket
True
>>> 'crabgrass' in basket
False