| Author: Eduardo Enriquez

Python For: como iterar tuplas, listas, conjuntos y diccionarios.

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().

Conjuntos o sets (en ingl茅s)

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

Related Posts