wake-up-neo.com

Erstellen einer Schleife bis list.length

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

22
Agape

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
40

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.

5
Felix Kling

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.

2
RomanI

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)
1
Vahid Farahmand

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.)

0
Vidul