[python] Wie man zwei Listen parallel durchläuft?


2 Answers

Sie möchten die zip Funktion.

for (f,b) in zip(foo, bar):
    print "f: ", f ,"; b: ", b
Question

Ich habe zwei Iterables in Python, und ich möchte sie paarweise betrachten:

foo = (1, 2, 3)
bar = (4, 5, 6)

for (f, b) in some_iterator(foo, bar):
    print "f: ", f, "; b: ", b

Es sollte ergeben:

f: 1; b: 4
f: 2; b: 5
f: 3; b: 6

Eine Möglichkeit besteht darin, über die Indizes zu iterieren:

for i in xrange(len(foo)):
    print "f: ", foo[i], "; b: ", b[i]

Aber das scheint mir etwas unpythonisch. Gibt es einen besseren Weg, es zu tun?




Zip-Funktion löst das Problem
Text & Tabellen: zip

AIM: Die Ausgabe nebeneinander stellen Problem:

#value1 is a list
value1 = driver.find_elements_by_class_name("review-text")
#value2 is a list
value2 = driver.find_elements_by_class_name("review-date")

for val1 in value1:
    print(val1.text)
    print "\n"
for val2 in value2:
    print(val2.text)
    print "\n"

Ausgabe:
Rezension1
Rezension2
Rezension3
Datum1
Datum2
Datum3

Lösung:

for val1, val2 in zip(value1,value2):
    print (val1.text+':'+val2.text)
    print "\n"

Ausgabe:
Überprüfung1: Datum1
Überprüfung2: Datum2
Überprüfung3: Datum3




Was du suchst, heißt zip .




Related