Wie kann ich zwei Listen in Python miteinander verknüpfen?
Beispiel:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
Erwartetes Ergebnis:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
Wie kann ich zwei Listen in Python miteinander verknüpfen?
Beispiel:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
Erwartetes Ergebnis:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
Sie könnten auch einfach sum
.
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> sum([a, b], [])
[1, 2, 3, 4, 5, 6]
>>>
Dies funktioniert für jede Länge und jeden Elementtyp einer Liste:
>>> a = ['a', 'b', 'c', 'd']
>>> b = [1, 2, 3, 4]
>>> c = [1, 2]
>>> sum([a, b, c], [])
['a', 'b', 'c', 'd', 1, 2, 3, 4, 1, 2]
>>>
Der Grund, warum ich []
ist, weil die start
wird auf 0
Standardmäßig wird die Liste also in einer Schleife durchlaufen und zu start
pero 0 + [1, 2, 3]
würde einen Fehler ergeben, wenn wir also die start
a []
würde es dazu beitragen, dass []
, [] + [1, 2, 3]
würde wie erwartet funktionieren.
Es gibt also zwei einfache Möglichkeiten.
+
: Es wird eine neue Liste aus den vorgegebenen Listen erstelltBeispiel:
In [1]: a = [1, 2, 3]
In [2]: b = [4, 5, 6]
In [3]: a + b
Out[3]: [1, 2, 3, 4, 5, 6]
In [4]: %timeit a + b
10000000 loops, best of 3: 126 ns per loop
Beispiel:
In [1]: a = [1, 2, 3]
In [2]: b = [4, 5, 6]
In [3]: %timeit a.extend(b)
10000000 loops, best of 3: 91.1 ns per loop
Wir sehen also, dass von den zwei beliebtesten Methoden, extend
effizient ist.
Ich gehe davon aus, dass Sie eine der beiden Methoden wünschen:
Doppelte Elemente behalten
Es ist sehr einfach, einfach wie eine Zeichenkette zu verketten:
def concat_list(l1,l2):
l3 = l1+l2
return l3
Wenn Sie doppelte Elemente entfernen möchten, gehen Sie wie folgt vor
def concat_list(l1,l2):
l3 = []
for i in [l1,l2]:
for j in i:
if j not in l3:
#Check if element exists in final list, if no then add element to list
l3.append(j)
return l3
Die angebotenen Lösungen gelten für einzelne Listen. Für den Fall, dass es Listen innerhalb einer Liste gibt und die Zusammenführung der entsprechenden Listen erforderlich ist. Die "+"-Operation in der for-Schleife erledigt die Arbeit.
a=[[1,2,3],[4,5,6]]
b=[[0,1,2],[7,8,9]]
for i in range(len(a)):
cc.append(a[i]+b[i])
Ausgabe: [[1, 2, 3, 0, 1, 2], [4, 5, 6, 7, 8, 9]]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.