Python Listförståelse, Apend, Sortera, Längd [EXEMPEL]

Vad är en Python Lista?

En lista är precis vad det låter som, en behållare som innehåller olika Python objekt, som kan vara heltal, ord, värden, etc. Det är motsvarigheten till en array i andra programmeringsspråk. Den representeras av hakparenteser (och detta är ett av attributen som skiljer den från tupler, som är åtskilda av parenteser). Den är också föränderlig, det vill säga den kan modifieras eller uppdateras; till skillnad från tupler, som är oföränderliga.

Exempel på Python listor:

Python listor kan vara homogena, vilket innebär att de kan innehålla samma typ av objekt; eller heterogena, inklusive olika typer av objekt.

Exempel på homogena listor inkluderar:

list of integers =  [1, 2, 3, 8, 33]
list of animals = ['dog', 'cat', 'goat']
list of names = ['John', 'Travis', 'Sheila']
list of floating numbers = [2.2, 4.5, 9.8, 10.4]

Exempel på heterogena listor inkluderar:

[2, 'cat', 34.33, 'Travis']
[2.22, 33, 'pen']

Få tillgång till värden i listor

För att komma åt värden i listor kan indexet för objekten i listorna användas. Ett index i Python listor hänvisar till positionen för ett element i en ordnad lista. Till exempel:

list = [3, 22, 30, 5.3, 20]
  • Det första värdet i listan ovan, 3, har ett index på 0
  • Det andra värdet, 22, har ett index på 1
  • Det tredje värdet, 30, har ett index på 2

och så vidare. För att komma åt vart och ett av värdena från listan använder du:

list[0] to access 3
list[1] to access 22
list[2] to access 30
list[3] to access 5.3
list[4] to access 20

Den sista medlemmen i en lista kan också nås genom att använda indexet -1. Till exempel,

list[-1] = 20

Python Lista skivning

Listslicing är metoden för att dela upp en delmängd av en lista, och indexen för listobjekten används också för detta. Använd till exempel samma listexempel ovan;

list[:] = [3, 22, 30, 5.3, 20] (all the members of the list];
list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3);
list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4)
list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).

Python listor är exklusiva för övre gränser, och det betyder att det sista indexet under listdelning vanligtvis ignoreras. Det är därför

list[2:-1] = [30, 5.3]

, och inte [30, 5.3, 20]. Detsamma gäller för alla andra listskivningsexempel som ges ovan.

Uppdaterar listor

Låt oss säga att du har en lista = [fysik, kemi, matematik] och du vill ändra listan till [biologi, kemi, matematik], och effektivt ändra medlemmen vid index 0. Det kan enkelt göras genom att tilldela det indexet till ny medlem du vill ha.

Det vill säga,

list = [physics, chemistry, mathematics]
    list[0] = biology
    print(list)

Resultat: [biologi, kemi, matematik]

Detta ersätter medlemmen vid index 0 (fysik) med det nya värdet du vill ha (kemi). Detta kan göras för alla medlemmar eller undergrupper av listan som du vill ändra.

För att ge ett annat exempel; låt oss säga att du har en lista som heter heltal och som innehåller talen [2, 5, 9, 20, 27]. För att ersätta 5 i den listan med 10 kan du göra det med:

integers = [2, 5, 9, 20, 27]
           integers[1] = 10
           print(integers)

>>> [2, 10, 9, 20, 27]

För att ersätta den sista medlemmen i listan med heltal, som är 27, med ett ledigt nummer som 30.5, skulle du använda:

integers = [2, 5, 9, 20, 27]
           integers[-1] = 30.5
           print(integers)

>>> [2, 5, 9, 20, 30.5]

Ta bort listelement

Det finns 3 Python metoder för att ta bort listelement: list.remove(), list.pop() och deloperator. Remove-metoden tar det specifika elementet som ska tas bort som ett argument medan pop och del tar indexet för det element som ska tas bort som ett argument. Till exempel:

lista = [3, 5, 7, 8, 9, 20]

För att ta bort 3 (det första elementet) från listan kan du använda:

  • list.remove(3) eller
  • list.pop[0], eller
  • del lista[0]

För att ta bort 8, objektet i index 3, från listan kan du använda:

  • list.remove(8), eller
  • list.pop[3]

Lägger till listelement

För att lägga till element i en lista används append-metoden, och detta lägger till elementet i slutet av listan.

Till exempel:

list_1 = [3, 5, 7, 8, 9, 20]
    list_1.append(3.33)
    print(list_1)

    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33]

    list_1.append("cats")
    print(list_1)
    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, "cats"]

Lista inbyggda funktioner (metoder)

Följande är en lista över inbyggda funktioner och metoder med deras beskrivningar:

  • len(lista): detta ger längden på listan som utdata. Till exempel:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
  • max(lista): returnerar objektet i listan med maxvärdet. Till exempel:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
  • min(lista): returnerar objektet i listan med det lägsta värdet. Till exempel:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
  • lista (tuppel): konverterar ett tupelobjekt till en lista. Till exempel;
animals = (cat, dog, fish, cow)
print(list(animals))
>>> [cat, dog, fish, cow]
  • list.append(element): lägger till elementet i listan. Till exempel;
numbers = [2, 5, 7, 9]
numbers.append(15)
print(numbers)
>>> [2, 5, 7, 9, 15]
  • list.pop(index): tar bort elementet vid det angivna indexet från listan. Till exempel;
numbers = [2, 5, 7, 9, 15]
numbers.pop(2)
print(numbers)
>>> [2, 5, 9, 15]
  • list.remove(element): tar bort elementet från listan. Till exempel;
values = [2, 5, 7, 9]
values.remove(2)
print(values)
>>> [5, 7, 9]
  • list.reverse(): vänder objekten i listan. Till exempel;
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
  • list.index(element): för att få indexvärdet för ett element i listan. Till exempel;
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
  • summan(lista): för att få summan av alla värden i listan, om värdena är alla tal (heltal eller decimaler). Till exempel;
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)

>>> 17

Om listan innehåller något element som inte är ett tal, till exempel en sträng, skulle summametoden inte fungera. Du skulle få ett felmeddelande som säger: "Skrivfel: operandtyp(er) som inte stöds för +: 'int' och 'str'”

  • list.sort(): för att ordna en lista med heltal, flyttal eller strängar, i stigande eller fallande ordning. Till exempel:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)

>>> [1, 3, 5, 7, 9]

Ett annat exempel:

values = [2, 10, 7, 14, 50]
# To sort the values in descending order:
values.sort(reverse = True)
print(values)

>>> [50, 14, 10, 7, 2]

En lista med strängar kan också sorteras, antingen alfabetiskt eller efter längden på strängarna. Till exempel;

# to sort the list by length of the elements
strings = ['cat', 'mammal', 'goat', 'is']
sort_by_alphabet = strings.sort()
sort_by_length = strings.sort(key = len)
print(sort_by_alphabet)
print(sort_by_length)

>>> ['cat', 'goat', 'is', 'mammal']
        ['is', 'cat', 'goat', 'mammal']

Vi kan sortera samma lista alfabetiskt genom att använda 'strängar.

Går igenom listor

Looping genom listor kan göras på precis samma sätt som vilken annan looping-funktion som helst Python. På så sätt kan en metod utföras på flera element i en lista samtidigt. Till exempel:

lista = [10, 20, 30, 40, 50, 60, 70].

För att gå igenom alla element i den här listan, och låt oss säga, lägg till 10 till varje element:

for elem in list:
        elem = elem + 5
        print(elem)
    
    >>>>15
        25
        35
        45
        55
        65
        75

Att gå igenom de tre första elementen i listan och ta bort dem alla;

for elem in list[:3]:
    list.remove(elem)

    >>>list = [40, 50, 60, 70]

Att gå igenom 3:anrd (index 2) till det sista elementet på listan, och lägg till dem i en ny lista som heter new_list:

new_list = []	
    for elem in list[2:]:
        new_list.append(elem)
        print(“New List: {}”.format(new_list))
    
   Output:
	New List: [30, 40, 50, 60, 70]

På detta sätt kan vilken metod eller funktion som helst tillämpas på medlemmarna i en lista för att utföra en viss operation. Du kan antingen gå igenom alla medlemmar i listan eller gå igenom en delmängd av listan genom att använda listdelning.

Lista förståelser Python

Listförståelser är Python funktioner som används för att skapa nya sekvenser (som listor, ordböcker etc.) med sekvenser som redan har skapats. De hjälper till att minska längre loopar och gör din kod lättare att läsa och underhålla.

Till exempel; låt oss säga att du ville skapa en lista som innehåller kvadraterna för alla siffror från 1 till 9:

list_of squares = []
    for int in range(1, 10):
        square = int ** 2
        list_of_squares.append(square)

    print(list_of_squares)

List_of_squares using for loop:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

För att göra samma sak med listförståelse:

list_of_squares_2 = [int**2 for int in range(1, 10)]

    print('List of squares using list comprehension: {}'.format(list_of_squares_2))

Output using list comprehension:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

Som framgår ovan är det mycket kortare att skriva koden med hjälp av listförståelse än att använda traditionella för loopar, och det är också snabbare. Detta är bara ett exempel på att använda listförståelser i stället för för loopar, men detta kan replikeras och användas på många ställen där för loopar också kan användas. Ibland är det bättre alternativet att använda en for-loop, speciellt om koden är komplex, men i många fall kommer listförståelser att göra din kodning enklare och snabbare.

Nedan finns en tabell som innehåller några listfunktioner och metoder och deras beskrivningar.

Inbyggda funktioner

FUNGERA BESKRIVNING
Runda() Avrundar talet som skickas som argument till ett angivet antal siffror och returnerar flyttalsvärdet
min() returnera minsta element i en given lista
max() returnera det maximala elementet i en given lista
len () Returnerar längden på listan
Räkna upp() Denna inbyggda funktion genererar både värden och index för objekt i en iterabel, så vi behöver inte räkna manuellt
Filtrera() testar om varje element i en lista är sant eller inte
Lambda Ett uttryck som kan förekomma på platser där en def (för att skapa funktioner) inte är syntaktisk, inuti en listliteral eller en funktions anropsargument
Karta() returnerar en lista över resultaten efter att ha tillämpat den givna funktionen på varje objekt i en given iterabel
Ackumulera() tillämpa en viss funktion som skickas i dess argument till alla listelement returnerar en lista som innehåller de mellanliggande resultaten
belopp() Returnerar summan av alla siffror i listan
Cmp() Detta används för att jämföra två listor och returnerar 1 om den första listan är större än den andra listan.
Insert Infoga element för att lista på en viss position

Lista metoder

FUNGERA BESKRIVNING
Bifoga() Lägger till ett nytt objekt i slutet av listan
Klar() Tar bort alla objekt från listan
Kopiera() Returnerar en kopia av originallistan
Förlänga() Lägg till många objekt i slutet av listan
Räkna() Returnerar antalet förekomster av ett visst objekt i en lista
Index() Returnerar indexet för ett specifikt element i en lista
Pop() Tar bort objekt från listan vid ett visst index (ta bort efter position)
Avlägsna() Tar bort angivet objekt från listan (ta bort efter värde)
Reverse() In-place reverseringsmetod som vänder ordningen på elementen i listan

Sammanfattning

  • En lista är precis vad det låter som, en behållare som innehåller olika Python objekt, som kan vara heltal, ord, värden, etc.
  • Python listor kan vara homogena, vilket betyder att de kan innehålla samma typ av objekt; eller heterogen, som innehåller olika typer av objekt.
  • För att komma åt värden i listor kan indexet för objekten i listorna användas.
  • Listslicing är metoden för att dela upp en delmängd av en lista, och indexen för listobjekten används också för detta.
  • Tre metoder för att ta bort listelement är: 1)list.remove(), 2)list.pop() och 3)deloperatorn
  • Append-metoden används för att lägga till element. Detta lägger till elementet i slutet av listan.
  • Looping metod för Python program kan utföras på flera element i en datalista samtidigt.
  • Listförståelser är Python funktioner som används för att skapa nya sekvenser (som listor, ordböcker etc.) med sekvenser som redan har skapats.