3238 Stimmen

Wie kann ich zwei Listen in Python miteinander verknüpfen?

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]

5voto

Akash Singh Punkte 312

Eine wirklich prägnante Art, eine Liste von Listen zu kombinieren, ist

list_of_lists = [[1,2,3], [4,5,6], [7,8,9]]
reduce(list.__add__, list_of_lists)

das gibt uns

[1, 2, 3, 4, 5, 6, 7, 8, 9]

5voto

U12-Forward Punkte 64772

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.

4voto

Vishvajit Pathak Punkte 2773

Es gibt also zwei einfache Möglichkeiten.

  1. Verwendung von + : Es wird eine neue Liste aus den vorgegebenen Listen erstellt

Beispiel:

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
  1. Mit extend : Die neue Liste wird an die bestehende Liste angehängt. Das heißt, es wird keine eigene Liste erstellt.

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.

3voto

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

1voto

Khan Punkte 1140

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.com

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.

Powered by:

X