11 metoder som måste kännas till Python List

I den här handledningen kommer du att lära dig hur du använder Python-listmetoder för att lägga till element till, ändra och ta bort element från Python-listor.

När du börjar med programmering i Python är listor en av de första inbyggda datastrukturerna som du kommer att lära dig om. Under de kommande minuterna kommer vi att gå igenom grunderna i Python-listor och sedan gå igenom flera användbara listmetoder som du kan använda när du arbetar med listor.

Låt oss börja!

En översikt över Python-listor

I Python är en lista en samling objekt av samma eller olika datatyp(er). Du kan gå igenom samlingen för att komma åt objekten med loopkonstruktioner som för loopar.

Liksom alla Python iterables följer listor noll indexering och stöder skivningsoperation.

De är föränderliga samlingar så att du kan ändra dem på plats. Detta inkluderar att lägga till och ta bort element från listan, sortera elementen i en viss ordning, vända om ordningen på element och mycket mer. Pythons inbyggda listmetoder hjälper dig att utföra dessa åtgärder.

Låt oss sedan titta på några användbara Python-listmetoder.

Inbyggda listmetoder i Python

I det här avsnittet kommer vi att lära oss några listmetoder som kommer att vara användbara. Vi kommer att koda exempel för att se dessa listmetoder i praktiken.

Vi kommer att använda följande pgm_langs lista. Det är en lista med strängar som innehåller namnen på populära programmeringsspråk.

pgm_langs = ['Python','Go','Rust','JavaScript']

Infoga listobjekt med insert()

Du kanske vill infoga ett element vid ett visst index. För att göra detta kan du använda metoden insert() . Insert() listmetodanropet tar in:

  • Indexet där elementet ska infogas, och
  • Elementet som ska infogas.

Låt oss infoga ’Scala’ vid index 1 med index()-metoden.

pgm_langs = ['Python','Go','Rust','JavaScript']
pgm_langs.insert(1,'Scala')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']

Lägg till objekt i listan med append()

Ibland kan du behöva lägga till ett element i slutet av listan. För att göra detta kan du använda metoden append().

Låt oss lägga till strängen ’Java’ i slutet av listan med metoden append().

pgm_langs.append('Java')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']

Lägg till en Iterable med extend()

Du vet att du kan använda metoden append() för att lägga till ett enda objekt. Men vad händer om du vill lägga till mer än ett objekt till en befintlig lista, t.ex. en lista med objekt? Metoden extend() ger en kortfattad syntax för att göra det.

Låt oss lägga till elementen i listan more_langs till pgm_langs-listan med metoden extend() .

more_langs = ['C++','C#','C']
pgm_langs.extend(more_langs)
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']

Du kan gå igenom listan med objekt och använda metoden append() för att lägga till ett objekt i taget. Detta är dock utförligt. Och det är bekvämare att använda metoden extend() istället.

for lang in more_langs:
    pgm_langs.append(lang)

Vänd en lista med reverse()

För att vända ordningen på element i en lista kan du anropa metoden reverse().

Vi ser att pgm_langs-listan har vänts på plats.

pgm_langs.reverse()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']

Sortera en lista med sort()

Du kan sortera Python-listan på plats genom att använda sort()-metoden. Eftersom pgm_langs är en lista med strängar ser vi att sorteringen sker i alfabetisk ordning.

pgm_langs.sort()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']

För att sortera listan i omvänd alfabetisk ordning kan du ställa in reverse-parametern till True i sort()-metodanropet.

pgm_langs.sort(reverse=True)
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Läs mer om att sortera Python-listor.

Gör en grund kopia med copy()

Det kan ibland vara bra att ändra en kopia av originallistan istället för att modifiera själva originallistan. Listmetoden copy() returnerar en ytlig kopia av Python-listan.

Låt oss skapa en ytlig kopia av pgm_langs-listan och kalla den pgm_langs_copy. Och vi ställer in det första elementet i listan till ’Haskell’ och skriver ut det.

pgm_langs_copy = pgm_langs.copy()
pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy)
# Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Vi ser dock att pgm_langs-listan inte är modifierad. Att skapa en ytlig kopia och ändra den ändrar därför inte originallistan.

print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Få artikelantal med count()

Ibland är det bra att veta hur många gånger ett visst element förekommer i en lista. Metoden count() returnerar antalet gånger ett element förekommer i en lista.

I listan pgm_langs förekommer alla element exakt en gång. Så när vi försöker få räkningen av ’Go’ får vi 1, vilket är korrekt.

print(pgm_langs.count('Go'))
# Output: 1

Att använda metoden count() är ett av sätten att ta bort dubbletter från Python-listor.

Hämta index för ett objekt med index()

För att hitta indexet för ett objekt i en Python-lista kan du använda metoden index(). Anta att vi skulle vilja hitta indexet för ’C#’ i pgm_langs-listan. Vi kan använda assert-satsen för att verifiera att elementet som index 7 är ’C#’.

print(pgm_langs.index('C#'))
# Output: 7
assert pgm_langs[7] == 'C#'

Ta bort objekt vid ett index med pop()

Låt oss nu titta på listmetoder för att ta bort element från Python-listor. Metoden pop() används för att ta bort och returnera ett element vid ett visst index. Från föregående kodexempel vet vi att ’C#’ är språket i index 7.

När vi anropar pop()-metoden på pgm_langs-listan med 7 som index, ser vi att den returnerar ’C#’, elementet vid index 7, och den tar också bort det från listan.

print(pgm_langs.pop(7))
# Output: 'C#'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']

Så metoden pop() tar bort och returnerar ett element vid det angivna indexet. Det är dock valfritt att ange index. När du inte anger indexet tar pop()-metoden bort och returnerar det sista elementet i Python-listan, som visas:

print(pgm_langs.pop())
# Output: 'C'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']

Ta bort objekt med remove()

Ibland kanske du vet vilket element du ska ta bort men inte dess index. I det här fallet kan du använda metoden remove()—som tar in ett element för att ta bort och tar bort det. Låt oss ta bort ’Java’ från pgm_langs-listan med metoden remove() som visas.

pgm_langs.remove('Java')
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']

Ta bort alla objekt med clear()

Vad händer om du vill ta bort alla objekt från en Python-lista? Du kan gå igenom listan och ta bort varje element med metoden remove() så här:

for lang in pgm_langs:
    pgm_langs.remove(lang)

Men finns det något bättre sätt? Ja, med metoden clear(). Vi ser att anrop av clear-metoden på pgm_langs-listan tar bort alla element, och pgm_langs är nu en tom lista.

pgm_langs.clear()
print(pgm_langs)
# Output: []

En sammanfattning av Python List-metoder

Låt oss snabbt sammanfatta de olika listmetoderna och deras syntax:

List MethodSyntaxDescriptioninsert()list1.insert(index, elt) Infogar elt vid index i list1append()list1.append(elt)Lägger till elt i slutet av list1extend()list1.extend(list2)Lägger till element från list2 till slutet av list1sort ()list1.sort()Sorterar listan i placereverse()list1.reverse()Reverserar list1 i placecopy()list1.copy()Returnerar en ytlig kopia av list1count()list1.count(elt)Returnerar antalet elt in list1index()list1.index(elt) Returnerar index för elt i list1pop()list1.pop(index) Tar bort elt vid index och returnerar det. remove()list1.remove(elt)Tar bort elt från list1clear()list1.clear()Tar bort alla element från list1

Slutsats

Jag hoppas att den här handledningen hjälpte dig att förstå hur du använder några av de vanligaste listmetoderna i Python. Som nästa steg kan du lära dig om Python-tupler och skillnaderna mellan listor och tupler i Python.

Om du lär dig Python kan du kolla in den här listan med nybörjarvänliga lärresurser.