Ich lese gerade über for-Schleifen und bin gespannt, ob es möglich ist, eine for-Schleife in Python wie in Java auszuführen.
Ist es überhaupt möglich so etwas zu tun?
for (int i = 1; i < list.length; i++)
und können Sie eine weitere for-Schleife in dieser for-Schleife ausführen?
Vielen Dank
In Python können Sie über die list
selbst iterieren:
for item in my_list:
#do something with item
oder um Indizes zu verwenden, können Sie xrange()
verwenden:
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]
Es gibt eine weitere integrierte Funktion namens enumerate()
, die sowohl Element als auch Index zurückgibt:
for index,item in enumerate(my_list):
# do something here
beispiele:
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
Ja können Sie mit range
[docs] :
for i in range(1, len(l)):
# i is an integer, you can access the list element with l[i]
wenn Sie jedoch trotzdem auf die Listenelemente zugreifen, ist es natürlicher, direkt über sie zu iterieren:
for element in l:
# element refers to the element in the list, i.e. it is the same as l[i]
Wenn Sie das erste Element überspringen möchten, können Sie die Liste aufteilen [Tutorial] :
for element in l[1:]:
# ...
können Sie eine weitere for-Schleife in dieser for-Schleife ausführen?
Sicher kannst du.
Die Antwort hängt davon ab, wofür Sie eine Schleife benötigen.
natürlich können Sie eine Schleife haben, die Java ähnelt:
for i in xrange(len(my_list)):
aber ich habe nie wirklich so Schleifen benutzt,
weil Sie normalerweise iterieren möchten
for obj in my_list
oder wenn Sie auch einen Index benötigen
for index, obj in enumerate(my_list)
oder Sie möchten eine andere Sammlung aus einer Liste erstellen
map(some_func, my_list)
[somefunc[x] for x in my_list]
es gibt auch ein itertools
-Modul, das die meisten Fälle mit Iteration abdeckt
bitte sehen Sie sich auch die eingebauten Elemente wie any
, max
, min
, all
, enumerate
Ich würde sagen - versuchen Sie nicht, Java-ähnlichen Code in Python zu schreiben. Es gibt immer einen pythonischen Weg, dies zu tun.
Sie können Python-Loops hier lernen: http://en.wikibooks.org/wiki/Python_Programming/Loops
Sie müssen wissen, dass Python {und} nicht für Anfang und Ende der Schleife hat. Stattdessen hängt es von den Tabulatorzeichen ab, die Sie in der ersten Zeile eingeben.
Sie können also eine Schleife mit doppeltem Tab (Einzug) erstellen.
Ein Beispiel für eine Doppelschleife ist wie folgt:
onetoten = range(1,11)
tentotwenty = range(10,21)
for count in onetoten:
for count2 in tentotwenty
print(count2)
Ich würde versuchen, die Lösung über Google und die Zeichenfolge Python für Anweisung zu suchen. So einfach ist das. Der erste Link sagt alles. (Ein wirklich tolles Forum, aber seine Nutzung scheint manchmal dem Microsoft-Verständnis der Vorteile aller GUI-Produkte zu ähneln: Fenster innen, Idioten draußen.)