2016-09-30 3 views
0

Ich habe 2 ListenPython Manipulationen auf Listen

l1 = ('A','B','C') 
l2 = ('X','Y','Z') 

Ich möchte eine Liste erstellen, basierend auf diesen 2

result = ('A gleiche wie X', 'B ist die gleiche wie Y' , 'C ist das gleiche wie Z')

wenn ich verketten, bekomme ich nicht das Ergebnis, das ich erwarte Wie kann ich die Listen kombinieren? Dank PMV

+0

die neue Liste mit etwas Text in b von list1 und Liste Kämme/w..something wie result = ('A ist die gleiche wie X ',' B ist gleich wie Y ',' C ist gleich wie Z ') – pmv

Antwort

0

können Sie die Listen zip zusammen, die die beiden Listen zu einer Liste von Tupeln kombinieren und dann diese Tupel iterieren.

z = zip(l1,l2) #[(A,X), (B,Y), (C,Z)] 

result = ["{0} is the same as {1}".format(t[0], t[1]) for t in z] 

# ['A is the same as X', 'B is the same as Y', 'C is the same as Z'] 
+0

ich bekomme diesen Fehler..iam mit py2.7 -------------------- -------------------------------------------------- ----- TypeError Traceback (letzter Aufruf zuletzt) ​​ in () ----> 1 result = ["{0} ist das gleiche wie {1}" .format (t [0], t [1]) für ti n zip] TypeError: Objekt 'builtin_function_or_method' ist nicht iterierbar – pmv

+0

Nur bearbeitet. Fett fingerte den Code beim Eintippen in SO. Es sollte "t in z" nicht "t in zip" sein – TheF1rstPancake

2

Die zip() Funktion kann Ihnen hier helfen.

result = [] 
for a, b in zip(l1, l2): 
    result.append("{0} is same as {1}".format(a, b)) 
0

Nur ein direkterer Weg ...

>>> map('{} is same as {}'.format, l1, l2) 
['A is same as X', 'B is same as Y', 'C is same as Z']