Lägga till element i en lista (array) i Python: append(), extend(), insert()

Företag

För att lägga till ett element i en lista (array) av typen list i Python, eller för att kombinera en annan lista, använder du listmetoderna append(), extend() och insert(). Du kan också använda operatorn + eller slice för att ange en position och tilldela den.

Här finns följande information.

  • Lägg till element i slutet:append()
  • Slå ihop en annan lista eller tupel i slutet (sammanlänkning).: extend(),+operatör
  • Lägg till (infoga) ett element på den angivna positionen.:insert()
  • Lägg till (infoga) en annan lista eller tupel på den angivna positionen.:skiva

Lägg till element i slutet: append()

Med listans append()-metod kan du lägga till element i slutet (sist). Om du vill lägga till element på en annan plats än slutet, till exempel överst, använder du insert() enligt beskrivningen nedan.

l = list(range(3))
print(l)
# [0, 1, 2]

l.append(100)
print(l)
# [0, 1, 2, 100]

l.append('new')
print(l)
# [0, 1, 2, 100, 'new']

Listor kan också läggas till som ett enda element. De kombineras inte.

l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]

Slå ihop en annan lista eller tupel i slutet (sammanlänkning).: extend(), +operatör

Med listmetoden extend() kan du kombinera en annan lista eller tupel i slutet (slutet). Alla element läggs till i slutet av den ursprungliga listan.

l = list(range(3))
print(l)
# [0, 1, 2]

l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]

l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]

Observera att varje tecken (element) läggs till strängen ett tecken i taget.

l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']

Det är också möjligt att sammanfoga med hjälp av operatören + i stället för metoden extend().

+-operatorn returneras en ny lista.+=Då kan du också lägga till den i en befintlig lista.

l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]

l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]

Lägg till (infoga) ett element på den angivna positionen.: insert()

Listmetoden insert() kan lägga till (infoga) ett element på en angiven position.

Det första argumentet anger positionen och det andra argumentet anger det element som ska infogas. Den första (inledande) positionen är 0. För negativa värden är -1 den sista (slutliga) positionen.

l = list(range(3))
print(l)
# [0, 1, 2]

l.insert(0, 100)
print(l)
# [100, 0, 1, 2]

l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]

Precis som med append() läggs listan till som ett enda element. Den kommer inte att slås samman.

l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]

Observera att insert() inte är en effektiv operation eftersom den kräver följande kostnader. Se följande sida på den officiella wikin för beräkningskomplexiteten för de olika listoperationerna.
O(n)

O(1)
Deque-typen finns i standardbibliotekets collections-modul som en typ för att lägga till element i toppen till denna kostnad. Om du till exempel vill behandla data som en kö (FIFO) är det effektivare att använda deque.

Lägg till (infoga) en annan lista eller tupel på den angivna positionen.: skiva

Om du anger ett intervall med ett snitt och tilldelar en annan lista eller tupel kommer alla element att läggas till (infogas).

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]

Du kan också ersätta det ursprungliga elementet. Alla element i det angivna intervallet ersätts.

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]