2016-03-22 8 views
1

Ich habe bereits diesen Beitrag How to merge lists into a list of tuples in Python? überprüft, aber es scheint nicht zu meinem Problem zu passen.Verschmelzen Sie Listenelemente, um eine Liste von Tupeln in Python zu erhalten

Ich möchte mehrere Listen zusammenführen, um ein Tupel für jede Multiplikation zu erhalten. Sagen wir also:

listA = ['a', 'b', 'c', 'd'] 
listB = [ 1 , 2 , 3 , 4 , 5 ] 
listC = ['!', '?', '='] 

Die Listen haben nicht die gleiche Länge haben. Mein gewünschtes Ergebnis wäre:

result = [('a', 1, '!'), ('a', 1, '?'), ('a', 1, '='), ('a', 2, '!')... 

Soweit ich es bekam, die zip() Funktionen verbinden nur zwei Elemente zu einer Liste zusammen mit dem gleichen Index, die nicht das, was ich will.

+0

Mögliche Duplikat http://stackoverflow.com/questions/12935194/combinations-between-two-lists – Arman

Antwort

1

Verwendung itertools.product:

>>> listA = ['a', 'b', 'c', 'd'] 
>>> listB = [ 1 , 2 , 3 , 4 , 5 ] 
>>> listC = ['!', '?', '='] 
>>> result = list(itertools.product(listA, listB, listC)) 
>>> result[:5] 
[('a', 1, '!'), ('a', 1, '?'), ('a', 1, '='), ('a', 2, '!'), ('a', 2, '?')] 
>>> 
+0

Das ist genau das, was ich wollte. Vielen Dank! – Calanas

Verwandte Themen