Je lis en ce moment sur les boucles for, et je suis curieux de savoir s'il est possible de faire une boucle for en Python comme en Java.
Est-il même possible de faire quelque chose comme
for (int i = 1; i < list.length; i++)
et pouvez-vous faire une autre boucle for à l'intérieur de cette boucle?
Merci
En Python, vous pouvez parcourir la list
elle-même:
for item in my_list:
#do something with item
ou pour utiliser des index, vous pouvez utiliser xrange()
:
for i in xrange(1,len(my_list)): #as indexes start at zero so you
#may have to use xrange(len(my_list))
#do something here my_list[i]
Il existe une autre fonction intégrée appelée enumerate()
, qui renvoie à la fois item et index:
for index,item in enumerate(my_list):
# do something here
exemples:
In [117]: my_lis=list('foobar')
In [118]: my_lis
Out[118]: ['f', 'o', 'o', 'b', 'a', 'r']
In [119]: for item in my_lis:
print item
.....:
f
o
o
b
a
r
In [120]: for i in xrange(len(my_lis)):
print my_lis[i]
.....:
f
o
o
b
a
r
In [122]: for index,item in enumerate(my_lis):
print index,'-->',item
.....:
0 --> f
1 --> o
2 --> o
3 --> b
4 --> a
5 --> r
Oui, vous pouvez, avec range
[docs] :
for i in range(1, len(l)):
# i is an integer, you can access the list element with l[i]
mais si vous accédez de toute façon aux éléments de la liste, il est plus naturel de les parcourir directement:
for element in l:
# element refers to the element in the list, i.e. it is the same as l[i]
Si vous voulez ignorer le premier élément, vous pouvez trancher la liste [Didacticiel] :
for element in l[1:]:
# ...
pouvez-vous faire une autre boucle for à l'intérieur de cette boucle
Sûr que vous pouvez.
La réponse dépend de ce que vous avez besoin d'une boucle.
bien sûr, vous pouvez avoir une boucle similaire à Java:
for i in xrange(len(my_list)):
mais je n'ai jamais utilisé de boucles comme ça,
parce que d'habitude vous voulez itérer
for obj in my_list
ou si vous avez aussi besoin d'un index
for index, obj in enumerate(my_list)
ou vous voulez produire une autre collection à partir d'une liste
map(some_func, my_list)
[somefunc[x] for x in my_list]
il existe également un module itertools
qui couvre la plupart des cas liés à une itération
veuillez également jeter un coup d'œil aux fonctions intégrées telles que any
, max
, min
, all
, enumerate
Je dirais - n'essayez pas d'écrire du code de type Java en python. Il y a toujours une manière pythonique de le faire.
Vous pouvez en apprendre davantage sur les boucles Python ici: http://en.wikibooks.org/wiki/Python_Programming/Loops
Vous devez savoir que Python n'a pas {et} pour le début et la fin de la boucle, cela dépend des caractères de tabulation que vous entrez en premier de ligne, je veux dire des retraits de ligne.
Ainsi, vous pouvez faire une boucle dans la boucle avec double tabulation (retrait)
Voici un exemple de double boucle:
onetoten = range(1,11)
tentotwenty = range(10,21)
for count in onetoten:
for count2 in tentotwenty
print(count2)
J'essayais de chercher la solution avec Google et la chaîne Python pour l'instruction, c'est aussi simple que cela. Le premier lien dit tout. (Un bon forum, vraiment, mais son utilisation semble parfois ressembler à celle de Microsoft qui comprend tous les avantages des produits de l'interface graphique: fenêtres à l'intérieur, idiots à l'extérieur.)