2016-07-09 12 views
2

Ich bin ziemlich neu in Python. Ich möchte wissen, wie Sie an ein String-Element in einer Liste kumulativ anhängen können?Python an ein String-Element in einer Liste anfügen

list = ['1','2','3','4'] 
list2 = ['a','b','c','d'] 

Ich möchte eine neue Liste wie folgt aus:

list3 = ['1a', '1b', '1c', '1d'] 

Ich habe Kreise für mögliche Antworten läuft. Hilfe wird sehr geschätzt, danke!

+0

Sorry Tippfehler, ja es gibt Strings. – user3030473

+1

willst du 'list3 = ['1a', '1b', '1c', '1d']' oder 'list3 = ['1a', '2b', '3c', '4d']'? –

+1

Ihr Ergebnis ist etwas irreführend. Möchten Sie "1" mit allen Elementen von Liste2 voranstellen oder ist es eine angrenzende Verkettung? – Abhijit

Antwort

2

können Sie map() verwenden und zip wie so:

list = ['1','2','3','4'] 
list2 = ['a','b','c','d'] 

print map(lambda x: x[0] + x[1],zip(list,list2)) 

Ausgang:

['1a', '2b', '3c', '4d'] 

Online Demo - https://repl.it/CaTY

2

Mit list comprehension. Beachten Sie, dass Sie die ganze Zahl über die Funktion str() in eine Zeichenkette umwandeln müssen. Dann können Sie die Zeichenkettenverkettung verwenden, um list1 [0] und jedes Element in list2 zu kombinieren. Beachten Sie auch, dass list ein Schlüsselwort in Python ist, daher ist es kein guter Name für eine Variable.

>>> list1 = [1,2,3,4] 
>>> list2 = ['a','b','c','d'] 
>>> list3 = [str(list1[0]) + char for char in list2] 
>>> list3 
['1a', '1b', '1c', '1d'] 
+0

Während Code oft für sich selbst spricht, ist es gut, Ihrem Code eine Erklärung hinzuzufügen. – Will

+0

@Will ich stimme zu, ich habe meine Antwort bearbeitet – ifma

+0

Super, danke! :) – Will

1

In Ihrer Frage möchten Sie 01.231..

Wenn Sie wirklich wollen diese: list3 = ['1a', '2b', '3c', '4d'] dann:

>>> list = ['1','2','3','4'] 
>>> list2 = ['a','b','c','d'] 
>>> zip(list, list2) 
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'd')] 
>>> l3 = zip(list, list2) 
>>> l4 = [x[0]+x[1] for x in l3] 
>>> l4 
['1a', '2b', '3c', '4d'] 
>>> 
-2

Ich gehe davon aus, Ihr Ziel ist [ '1a', '2b', '3c', '4d']?

list = [ '1', '2', '3', '4' ] 
list2 = [ 'a', 'b', 'c', 'd' ] 
list3 = [] 

for i in range (len(list)): 
    elem = list[i] + list2[i] 
    list3 += [ elem ] 

print list3 

Im Allgemeinen würde ich vorsichtig sein, dies zu tun. Es gibt keine Überprüfung hier, dass die Listen die gleiche Länge haben, also, wenn Liste länger als list2 ist, würden Sie einen Fehler erhalten, und wenn Liste kürzer als list2 ist, würden Sie Informationen verpassen.

würde ich dieses spezielle Problem wie folgt tun:

letters = [ 'a', 'b', 'c', 'd' ] 
numberedLetters = [] 

for i in range (len(letters)): 
    numberedLetters += [ str(i+1) + letters[ i ] ] 

print numberedLetters 

Und mit den anderen Plakaten einverstanden sind, nicht Ihre Variable ‚list‘ nennen - nicht nur, weil es ein Schlüsselwort ist, sondern weil Variablennamen sein sollte so informativ wie vernünftigerweise möglich.