2016-03-25 10 views
1

Ich habe die unter 3-Listen und ein Wert (Land [i]), und ich möchte das gleiche Land hinzuzufügen [i] auf alle Tupel verfügbar:Zugabe der gleichen Variable auf eine Liste von Tupeln

name = ["a", "b", "c"] 
age = [1, 2, 3] 
city = ["aaa", "bbb", "ccc"] 
country[i] 

wo Land [i] gleich zu "Vereinigten Staaten", und ich den folgenden Code:

user_info = [tuple((t,)) for t in zip(name, age, city, country[i])] 

Wenn ich folgendes Ergebnis ausgeführt hätte:

[(('a', 1, 'aaa', 'U'),), (('b', 2, 'bbb', 'n'),), (('c', 3, 'ccc', 'i'),)] 

Wh ile, was ich will, ist:

[('a', 1, 'aaa', 'United States'), ('b', 2, 'bbb', 'United States'), ('c', 3, 'ccc', 'United States)] 

Antwort

2

Sie es zu jedem der Artikel hinzufügen "manuell":

v = (country[i],) 
[t + v for t in zip(name, age, city)] 

Demo:

>>> country = ["United States"] 
>>> i = 0 
>>> name = ["a", "b", "c"] 
>>> age = [1, 2, 3] 
>>> city = ["aaa", "bbb", "ccc"] 
>>> v = (country[i],) 
>>> [t + v for t in zip(name, age, city)] 
[('a', 1, 'aaa', 'United States'), ('b', 2, 'bbb', 'United States'), ('c', 3, 'ccc', 'United States')] 
0

seit Land [i] ist nur " Vereinigte Staaten "Sie treten mit der for-Schleife durch die Saite. Also bekommst du jeden einzelnen Buchstaben. Die Liste der Länder muss genauso lang sein wie die der Städte.

So soll es

country[i] = ["United States", "United States", "United States"] 

oder einfacher

country[i] = ["United States"]*3 

oder Sie wird nicht durch das Land Schritt, wenn Sie vielleicht Liste haben die Länder, die Sie nur eine

1
result = [my_tuple + ('United States',) for my_tuple in zip(name, age, city)] 

haben, dann

result = [my_tuple + (country,) for my_tuple in zip(name, age, city) for country in countries] 
Verwandte Themen