In C/C++, posso avere il seguente ciclo for(int k = 1; k <= c ; k +=2)
ciclo for in Python
Come non fare la stessa cosa in Python?
Posso farlo for k in range(1,c):
in Python, che sarebbe identico a for(int k = 1; k <= c ; k++)
in C/C++.
In C/C++, posso avere il seguente ciclo for(int k = 1; k <= c ; k +=2)
ciclo for in Python
Come non fare la stessa cosa in Python?
Posso farlo for k in range(1,c):
in Python, che sarebbe identico a for(int k = 1; k <= c ; k++)
in C/C++.
si dovrebbe anche sapere che in Python, iterazione su indici interi è cattivo stile, e anche più lento rispetto all'alternativa. Se vuoi solo guardare ciascuno degli elementi in un elenco o dettare, passa direttamente attraverso l'elenco o dettami.
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]
Questo in realtà è più veloce rispetto all'utilizzo del codice di cui sopra con la gamma(), e rimuove il i
variabile estranea.
Se è necessario modificare gli elementi di un elenco sul posto, allora si fai bisogno l'indice, ma c'è ancora un modo migliore:
for i, item in enumerate(mylist):
mylist[i] = item**2
Ancora una volta, questo è sia più veloce e considerato più leggibile . Questo è uno dei principali cambiamenti nel pensare che devi fare quando passi da C++ a Python.
Provare ad usare questa:
for k in range(1,c+1,2):
Se si vuole scrivere un ciclo in Python che stampa qualche intero senza ecc, poi basta copiare e patè questo codice, funzionerà un sacco
#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 risposta è buona, ma per le persone che vogliono questo con range()
, la forma da fare è:
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]
In Python si ha in generale per nei cicli invece di generale per i loop come C/C++, ma è possibile ottenere la stessa cosa con il seguente codice.
for k in range(1, c+1, 2):
do something with k
Riferimento Loop in Python.
come nota a margine, se si sta utilizzando Python 2.x xrange è più efficiente. – GWW
@GWW: xrange è tecnicamente più _memory_efficiente, ma raramente ha conseguenze pratiche a meno che il tuo intervallo non sia molto grande e 3.x elimina completamente il nome 'xrange', quindi usarlo è più probabile che confonda i principianti di qualsiasi altra cosa altro. –
@Nicholas: Sto solo citando, non sto davvero cercando di confondere. Ho imparato a conoscere xrange nel modo più duro quando ho avuto a che fare con un enorme collo di bottiglia nel mio codice. Non voglio che nessun altro si blocchi su questo: P – GWW