Programmering 1

LISTOR
MÅL
- Vad är en lista? Varför listor?
- Hur man skapar och använder en lista
- Loopa genom listor
- Olika metoder för listor för att lägga till, ta bort, ändra, sortera etc.
Vad är en lista?
En ordnad samling element som vart och ett kan identifieras med ett nummer, ett s.k index.
Varför är listor användbara?
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.
Hur skapar man listor?
some_list = [True, 1.66, "Hello"]
I Python är det möjligt att definiera element av olika datatyper i listan
Element av olika datatyper
Ta reda på antalet element 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.
Hämta värden från en lista
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
Finns värdet i listan?
friends = ["Kalle", "Bosse", "Sven", "Harry"]
"Sven" in friends # True
"Joker" in friends # False
Iterera över alla element i en lista
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!
... eller med en while-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!
for-loop med enumerate
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!
Skapa en lista av annan itererbar datatyp
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
Listmetoder
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.
append
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]
insert
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]
pop
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]
remove
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]
clear
Tar bort alla element från listan
first_list = [1, 2, 3, 4]
first_list.clear()
print(first_list) # []
index
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
count
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
reverse
Ordnar listan i omvänd ordning
first_list = [1, 2, 3, 4]
first_list.reverse()
print(first_list) # [4, 3, 2, 1]
sort
Sorterar listan.
another_list = [6, 4, 1, 2, 5]
another_list.sort()
print(another_list) # [1, 2, 4, 5, 6]
join
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
slice
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]
Nästlade listor
Helt enkelt en lista i en lista
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Hämta från nästlade listor
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
nested_list[0][1] # 2
nested_list[1][-1] # 6
Skriva ut nästlade listor
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
Programmering 1 i Python - Listor
By Sandra Larsson
Programmering 1 i Python - Listor
The hole shabang
- 281