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]

7voto

mingxiao Punkte 1542

Sie könnten die append() Methode definiert auf list Objekte:

mergedlist =[]
for elem in listone:
    mergedlist.append(elem)
for elem in listtwo:
    mergedlist.append(elem)

7voto

Wie bereits von vielen hervorgehoben, itertools.chain() ist der richtige Weg, wenn es darum geht, die genau die gleiche Behandlung zu beiden Listen. In meinem Fall hatte ich eine Bezeichnung und ein Kennzeichen, die sich von einer Liste zur anderen unterschieden, so dass ich etwas Komplexeres brauchte. Wie sich herausstellte, wird hinter den Kulissen itertools.chain() macht einfach das Folgende:

for it in iterables:
    for element in it:
        yield element

(siehe https://docs.python.org/2/library/itertools.html ), also habe ich mich von hier inspirieren lassen und etwas in dieser Richtung geschrieben:

for iterable, header, flag in ( (newList, 'New', ''), (modList, 'Modified', '-f')):
    print header + ':'
    for path in iterable:
        [...]
        command = 'cp -r' if os.path.isdir(srcPath) else 'cp'
        print >> SCRIPT , command, flag, srcPath, mergedDirPath
        [...]

Die wichtigsten Punkte, die hier zu verstehen sind, sind, dass Listen nur ein Spezialfall von iterable sind, die Objekte wie jedes andere sind; und dass for ... in Schleifen in Python können mit Tupel-Variablen arbeiten, so dass es einfach ist, Schleifen über mehrere Variablen gleichzeitig zu ziehen.

7voto

Code Carbonate Punkte 475
 a=[1,2,3]
 b=[4,5,6]

 c=a+b
 print(c)

OUTPUT:

 >>> [1, 2, 3, 4, 5, 6]

Im obigen Code wird der Operator "+" verwendet, um die 2 Listen zu einer einzigen Liste zu verketten.

EINE ANDERE LÖSUNG:

 a=[1,2,3]
 b=[4,5,6]
 c=[] #Empty list in which we are going to append the values of list (a) and (b)

 for i in a:
     c.append(i)
 for j in b:
     c.append(j)

 print(c)

OUTPUT:

>>> [1, 2, 3, 4, 5, 6]

6voto

Ich empfehle drei Methoden zur Verkettung der Liste, wobei die 1. Methode am besten geeignet ist,

# easiest and least complexity method <= recommended

listone = [1, 2, 3]
listtwo = [4, 5, 6]

newlist = listone + listtwo
print(newlist)

# 2nd easiest method
newlist = listone.copy()
newlist.extend(listtwo)
print(newlist)

Bei der 2. Methode weise ich newlist zu einer Kopie der listone weil ich mich nicht ändern will listone .

# 3rd method
newlist = listone.copy()
for j in listtwo:
    newlist.append(j)

print(newlist)

Dies ist kein guter Weg, um Listen zu verketten, weil wir for-Schleife verwenden, um die Listen zu verketten. Die Zeitkomplexität ist also viel höher als bei den anderen beiden Methoden.

6voto

Franz Kurt Punkte 611

Die gebräuchlichste Methode zur Verkettung von Listen sind die Plus-Operator und die eingebaute Methode anhängen. zum Beispiel:

list = [1,2]

list = list + [3]
# list = [1,2,3]

list.append(3) 
# list = [1,2,3]

list.append([3,4]) 
# list = [1,2,[3,4]]

In den meisten Fällen wird dies funktionieren, aber die anhängen. Funktion wird eine Liste nicht erweitern, wenn eine solche hinzugefügt wurde. Da dies nicht erwartet wird, können Sie eine andere Methode namens erweitern. sollte mit Strukturen arbeiten:

list = [1,2]
list.extend([3,4]) 
# list = [1,2,3,4]

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