2016-03-21 2 views
2

Ich habe 3 Tupeln:Union von Elementen aus verschiedenen Tupeln in Python

a = ('mary', 'peter', 'james') 
b = ('brown_eyes', 'blue_eyes', 'green-eyes') 
c = ('blond_hair', 'short_hair', 'dark_hair') 

Ich muss das erste Element jedes Tupel verbinden, wobei das zweite Element jedes Tupel, die dritte ... Zur Drucken Sie etwas wie dieses:

mary brown_eyes blond_hair 
peter blue_eyes short_hair 
james green_eyes dark_hair 

Antwort

5

Sie können zip verwenden, um diese Kombination für Sie zu tun. Es akzeptiert mehrere Iterables und gibt ein Iterable zurück, wobei jedes Ergebnis genau wie beschrieben ein Element aus jeder der Eingaben enthält.

d,e,f = zip(a,b,c) 

Hier ist ein vollständiges Beispiel Ihre Eingangsdaten: Sie

a = ('mary', 'peter', 'james') 
b = ('brown_eyes', 'blue_eyes', 'green-eyes') 
c = ('blond_hair', 'short_hair', 'dark_hair') 

d,e,f = zip(a,b,c) 

Dann jede dieser print mit drucken können, und das Tupel erweitert:

print(*d) # mary brown_eyes blond_hair 

Wenn Sie, möchten Sie Sie können dies auch in einer Zeile tun, wenn Sie die Zwischenwerte nicht interessieren und nur die Kombinationen drucken möchten.

_ = [print(*item) for item in zip(a,b,c)] 
# mary brown_eyes blond_hair 
# peter blue_eyes short_hair 
# james green-eyes dark_hair 
0

einfach eine Schleife und Index in jedem Einsatz (Makes für leicht lesbaren Code)

a=('mary', 'peter', 'james') 
b=('brown_eyes','blue_eyes','green-eyes') 
c=('blond_hair','short_hair','dark_hair') 

for i in range(len(a)): 
    print a[i], b[i], c[i] 
0

Lösung lautet:

a = ['mary', 'peter', 'james'] 
b = ['brown_eyes', 'blue_eyes', 'green-eyes'] 
c = ['blond_hair', 'short_hair', 'dark_hair'] 

for element in zip(a, b, c): 
    print(' '.join(element)) 
Verwandte Themen