Was ist der pythonische Ansatz, um Folgendes zu erreichen?
# Original lists:
list_a = [1, 2, 3, 4]
list_b = [5, 6, 7, 8]
# List of tuples from 'list_a' and 'list_b':
list_c = [(1,5), (2,6), (3,7), (4,8)]
Jedes Mitglied von list_c
ist ein Tupel, dessen erstes Mitglied von list_a
und das zweite von stammt list_b
.
itertools
Modul definiert einezip_longest()
Methode, die am Ende der längsten Liste endet und fehlende Werte mit etwas füllt, das Sie als Parameter angeben.s/zip_longest()/izip_longest()
. In Python 3.x umbenannt inzip_longest()
.itertools.product()
tut das.In Python 3.0 gibt zip ein zip-Objekt zurück. Sie können eine Liste daraus erstellen, indem Sie anrufen
list(zip(a, b))
.quelle
Sie können Karte Lambda verwenden
Dies funktioniert auch, wenn die Länge der ursprünglichen Listen nicht übereinstimmt
quelle
map(None, a,b)
Sie suchen nach der eingebauten Funktion zip .
quelle
Ich bin nicht sicher, ob dies eine pythonische Art ist oder nicht, aber dies scheint einfach zu sein, wenn beide Listen die gleiche Anzahl von Elementen haben:
quelle
Ich weiß, dass dies eine alte Frage ist und bereits beantwortet wurde, aber aus irgendeinem Grund möchte ich diese alternative Lösung trotzdem veröffentlichen. Ich weiß, es ist einfach herauszufinden, welche eingebaute Funktion die "Magie" bewirkt, die Sie benötigen, aber es tut nicht weh zu wissen, dass Sie es selbst tun können.
quelle
card
inif-elif
werden nicht benötigt, deshalb haben Sie diecontinue
. (In der Tat, ohne diecontinue
müssten Sie die Listen nicht ändern: Beide zuvor genannten Aufgaben sollten dann beibehalten werdencard = (list_1[i], '')
und werdencard = ('', list_2[1])
jeweils.)Die Ausgabe, die Sie in der Problemstellung angezeigt haben, ist nicht das Tupel, sondern die Liste
prüfen Auf
Wenn Sie möchten, dass das Ergebnis als Tupel aus list_a und list_b angezeigt wird, tun Sie dies
quelle
<map object at 0x000001F266DCE5C0>
oder<zip object at 0x000002629D204C88>
. Zumindest scheint die Lösung für Karte und Zip (allein) für mich unvollständig (oder zu kompliziert) zu sein.Eine Alternative ohne Verwendung
zip
:Falls man nicht nur Tupel 1. mit 1., 2. mit 2. bekommen möchte ... sondern alle möglichen Kombinationen der 2 Listen, wäre das erledigt
quelle