En ordnad samling element som vart och ett kan identifieras med ett nummer, ett s.k index.
Listor tilför en datastruktur som gör det möjligt att iterera över, gruppera, sortera över flera element på ett effektivt sätt.
todo_1 = "Matte"
todo_2 = "Svenskauppsats"
todo_3 = "Kodsuppgift"
todos = ["Matte", "Svenskauppsats", "Koduppgift"]
Inte effektivt med en variabel för varje element
todos = ["Matte", "Svenskauppsats", "Koduppgift"]
Hakparentes [] runt listan och kommatecken , mellan varje element
todo_1 = "Matte"
todo_2 = "Svenskauppsats"
todo_3 = "Kodsuppgift"
todos = [todo_1 , todo_2, todo_3]
Ange variabelnamnet i listan.
some_list = [True, 1.66, "Hello"]
I Python är det möjligt att definiera element av olika datatyper i listan
todos = ["Matte", "Svenskauppsats", "Koduppgift"]
len(todos) # Skriver ut 3
Använda inbyggda funktion len(). Samma funktion som längden av en sträng.
Referera till indexnumret. Första elementet i listan är alltid på position 0
friends = ["Kalle", "Bosse", "Sven", "Harry"]
print(friends[0]) # Skriver ut Kalle
print(friends[1]) # Skriver ut Bosse
print(friends[2]) # Skriver ut Sven
print(friends[3]) # Skriver ut Harry
print(friends[4]) # IndexError - finns ej i listan
print(friends[-1]) # Skriver ut sista elementet i listan
1
0
2
3
INDEX
Sista elementets index är alltså len(friends) - 1. Eller använd endast -1
friends = ["Kalle", "Bosse", "Sven", "Harry"]
"Sven" in friends # True
"Joker" in friends # False
colors = ["magenta", "lila", "ljusgul", "azurblå"]
for color in colors:
print(color)
colors = ["magenta", "lila", "ljusgul", "azurblå"]
print(colors[0])
print(colors[1])
print(colors[2])
print(colors[3])
Onödig repetition
En loop!
colors = ["magenta", "lila", "ljusgul", "azurblå"]
index = 0
while index < len(colors)
print(colors[index])
index += 1
# Skriver ut...
# magenta
# lila
# ljusgul
# azurblå
Lite mer kod med en while-loop. Men ibland vill man kunna använda index-numret!
colors = ["magenta", "lila", "ljusgul", "azurblå"]
for index, color in enumerate(colors):
print(index, color)
# Skriver ut...
# 0 magenta
# 1 lila
# 2 ljusgul
# 3 azurblå
Där du även får indexnumret!
subject = list('Programmering')
>> subject
['P', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g']
Exempelvis en sträng får en lista av enstaka tecken
Metoder som vi kan använda på listor som att lägga till, ta bort, sortering, etc.
Dessa skulle kunna implementera själv, men finns redan färdigt i Python.
Lägga till ett element sist i listan
first_list = [1, 2, 3, 4]
first_list.append(5)
print(first_list) # [1, 2, 3, 4, 5]
second_list = [] #Börja med tom lista
second_list.append(1)
second_list.append(2)
second_list.append(3)
print(second_list) # [1, 2, 3]
Lägger till ett element på en given position
first_list = [1, 2, 3, 4]
# Lägger till först i listan
first_list.insert(0, 'Hi!')
print(first_list) # ['Hi', 1, 2, 3, 4]
first_list.insert(-1, 'The end!')
print(first_list) # ['Hi', 1, 2, 3, 'The end!', 4]
Tar bort ett element på given position
Om index saknas tar pop bort sista elementet i listan.
first_list = [1, 2, 3, 4]
first_list.pop() # 4
first_list.pop(1) # 2
print(first_list)
# Skriver ut [1, 3]
Tar bort det bort första förekomsten av ett värde.
Om värdet inte finns i listan upsptår felet ValueError.
first_list = [1, 2, 3, 4, 4, 4]
first_list.remove(2)
print(first_list) # [1, 3, 4, 4, 4]
first_list.remove(4)
print(first_list) # [1, 3, 4, 4]
Tar bort alla element från listan
first_list = [1, 2, 3, 4]
first_list.clear()
print(first_list) # []
Söker igenom listan för ett specifikt värde.
Returnerar index för första förekomsten.
numbers = [5, 6, 6, 7, 8, 9, 10]
numbers.index(6) # 1
numbers.index(9) # 5
Ger tillbaka hur många gånger ett element förekommer
numbers = [1, 2, 3, 4, 3, 2, 1, 4, 10, 2]
numbers.count(2) # 3
numbers.count(21) # 0
numbers.count(3) # 2
Ordnar listan i omvänd ordning
first_list = [1, 2, 3, 4]
first_list.reverse()
print(first_list) # [4, 3, 2, 1]
Sorterar listan.
another_list = [6, 4, 1, 2, 5]
another_list.sort()
print(another_list) # [1, 2, 4, 5, 6]
Sätter ihop alla elementen i listan-
words = ['Coding', 'Is', 'Fun!']
' '.join(words) # 'Coding is Fun!'
Här används alltså mellanslag " " för att sätta ihop elementen i listan
sentence = "Coding Is Fun!"
words = sentence.split(" ")
print(words) # ['Coding', 'Is', 'Fun!']
Det omvända:
split() skapar en lista utifrån " " som separator
Skapar en ny lista utifrån delar av ursprungslistan
first_list = [1, 2, 3, 4]
first_list[1:3] # [2, 3]
first_list[1:] # [2, 3, 4]
some_list[start:end:step]
Helt enkelt en lista i en lista
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
nested_list[0][1] # 2
nested_list[1][-1] # 6
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for l in nested_list:
for val in l:
print(val)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9