pyplot - title plt python
Python foreach equivalente (6)
Me estoy sumergiendo en Python y tengo una pregunta sobre la iteración foreach. Soy nuevo en Python y tengo algo de experiencia en C #. Así que me pregunto si hay alguna función equivalente en Python para la iteración de todos los elementos de mi colección, p. Ej.
pets = [''cat'', ''dog'', ''fish'']
marks = [ 5, 4, 3, 2, 1]
o algo como esto.
Me gusta esto:
for pet in pets :
print(pet)
De hecho, Python
solo
tiene un estilo foreach
for
bucles.
Para obtener una respuesta actualizada, puede crear una función
forEach
en Python fácilmente:
def forEach(list, function)
for i,v in enumerate(list))
function(v, i, list)
También puede adaptar esto al
map
,
reduce
,
filter
y cualquier otra función de matriz de otros idiomas o precedencia que desee trasladar.
Los bucles son lo suficientemente rápidos, pero la placa de la caldera es más larga que para
forEach
las funciones.
También puede extender la lista para tener estas funciones con un puntero local a una clase para poder llamarlas directamente en las listas también.
Para un dict podemos usar un bucle for para iterar a través del
index
,
key
y
value
:
dictionary = {''a'': 0, ''z'': 25}
for index, (key, value) in enumerate(dictionary.items()):
## Code here ##
Por supuesto. Un bucle for.
for f in pets:
print f
Si bien las respuestas anteriores son válidas, si está iterando sobre un dict {key: value}, este es el enfoque que me gusta usar:
for key, value in Dictionary.items():
print(key, value)
Por lo tanto, si quisiera hacer algo como stringify todas las claves y valores en mi diccionario, haría esto:
stringified_dictionary = {}
for key, value in Dictionary.items():
stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary
Esto evita cualquier problema de mutación al aplicar este tipo de iteración, lo que puede causar un comportamiento errático (a veces) en mi experiencia.
También es interesante observar esto
Para iterar sobre los índices de una secuencia, puede combinar
range()
y
len()
siguiente manera:
a = [''Mary'', ''had'', ''a'', ''little'', ''lamb'']
for i in range(len(a)):
print(i, a[i])
salida
0 Mary
1 had
2 a
3 little
4 lamb
Editar # 1: forma alternativa:
Al recorrer una secuencia, el índice de posición y el valor correspondiente se pueden recuperar al mismo tiempo utilizando la función
enumerate()
.
for i, v in enumerate([''tic'', ''tac'', ''toe'']):
print(i, v)
salida
0 tic
1 tac
2 toe