En C/C++, que puede tener el siguiente bucle for(int k = 1; k <= c ; k +=2)
bucle for en Python
Cómo no hacer lo mismo en Python?
Puedo hacer esto for k in range(1,c):
en Python, que sería idéntico a for(int k = 1; k <= c ; k++)
en C/C++.
En C/C++, que puede tener el siguiente bucle for(int k = 1; k <= c ; k +=2)
bucle for en Python
Cómo no hacer lo mismo en Python?
Puedo hacer esto for k in range(1,c):
en Python, que sería idéntico a for(int k = 1; k <= c ; k++)
en C/C++.
También debe saber que en Python, interactuando sobre índices enteros es mal estilo, y también más lenta que la alternativa. Si solo desea ver cada uno de los elementos en una lista o dict, bucle directamente a través de la lista o dict.
mylist = [1,2,3]
for item in mylist:
print item
mydict = {1:'one', 2:'two', 3:'three'}
for key in mydict:
print key, mydict[key]
Esto es realmente más rápido que utilizando el código anterior con la gama(), y elimina la i
variable extraña.
Si necesita editar los elementos de una lista en contexto, entonces hace necesitan el índice, pero todavía hay una manera mejor:
for i, item in enumerate(mylist):
mylist[i] = item**2
De nuevo, esto es a la vez más rápido y se considera más fácil de leer . Este es uno de los principales cambios en el pensamiento que debe realizar al pasar de C++ a Python.
Trate de usar esto:
for k in range(1,c+1,2):
Si desea escribir un bucle en Python que imprime un entero sin etc, entonces sólo debes copiar y paté de este código, que funcionará mucho
#Display Value from 1 TO 3
for i in range(1,4):
print "",i,"value of loop"
# Loop for dictionary data type
mydata = {"Fahim":"Pakistan", "Vedon":"China", "Bill":"USA" }
for user, country in mydata.iteritems():
print user, "belongs to " ,country
La respuesta es buena, pero para las personas que quieren esto con range()
, la forma de hacerlo es:
range(end)
:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(start,end)
:
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(start,end, step)
:
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
En Python por lo general tienen en el lugar de los bucles en general de bucles como C/C++, pero se puede lograr lo mismo con el siguiente código.
for k in range(1, c+1, 2):
do something with k
Referencia Loop in Python.
como nota al margen si está utilizando Python 2.x xrange es más eficiente. – GWW
@GWW: xrange es técnicamente más eficiente, pero raramente tiene consecuencias prácticas a menos que su alcance sea extremadamente grande, y 3.x elimina por completo el nombre 'xrange', por lo que su uso es más probable que confunda a los novatos que a nada más. –
@Nicholas: Solo lo estoy mencionando, realmente no estoy tratando de confundir. Aprendí sobre xrange de la manera más difícil cuando tenía rango, causando un enorme cuello de botella en mi código. No quiero que nadie más se quede atrapado en eso: P – GWW