Introduktion till listor
Vad är en lista?
En lista i Python är en samling av värden som sparas i en viss ordning. Den kan innehålla tal, textsträngar eller andra typer av objekt – även andra listor.
namn = ["Ali", "Sara", "Liam"]
print(namn[0]) # Skriver ut 'Ali'Vanliga listmetoder
| Metod | Beskrivning | Exempel |
|---|---|---|
append() | Lägger till ett element i slutet | namn.append("Ella") |
insert(index, x) | Lägger in ett element på en viss plats | namn.insert(1, "Leo") |
remove(x) | Tar bort första förekomsten av värdet | namn.remove("Sara") |
pop() | Tar bort och returnerar sista värdet | namn.pop() |
len() | Ger antal element i listan | len(namn) |
sort() | Sorterar listan (endast vid jämförbara typer) | namn.sort() |
Exempel:
# Lägga till värde
namn.append("Ella")
# Byta ut ett värde
namn[1] = "Noah"
# Ta bort ett värde
namn.remove("Liam")
# Längd på listan
print(len(namn))
# Loopa genom en lista
for person in namn:
print("Hej", person)split() – från text till lista
I många uppgifter får man en rad text från input(). Om användaren skriver flera tal på samma rad (t.ex. 3 10 6 7) behöver vi dela upp strängen till en lista.
1) Grundidé
line = input() # t.ex. "3 10 6 7"
parts = line.split() # ["3", "10", "6", "7"]Viktigt: split() ger alltid en lista av strängar, inte tal. Om du vill räkna måste du omvandla.
2) Omvandla till heltal
line = input()
parts = line.split()
nums = []
for p in parts:
nums.append(int(p))
print(nums)Exempel:
- In:
3 10 6 7 - Ut:
[3, 10, 6, 7]
3) Summa och medel
ine = input()
parts = line.split()
nums = []
for p in parts:
nums.append(int(p))
total = sum(nums)
average = total / len(nums)
print(total)
print(average)4) Om man vill dela på något annat än mellanslag
text = "3,10,6,7"
parts = text.split(",") # ["3", "10", "6", "7"]“Even” (jämna tal) – % och filtrering
Ett tal är jämnt (even) om det är delbart med 2, alltså om resten blir 0.
1) Kontrollera om ett tal är jämnt
n = 8
if n % 2 == 0:
print("even")
else:
print("odd")2) Filtrera fram jämna tal från en lista
nums = [3, 10, 6, 7, 2]
evens = []
for n in nums:
if n % 2 == 0:
evens.append(n)
print(evens) # [10, 6, 2]3) Skriva ut alla jämna tal i ett intervall utan if
Om du vill ha jämna tal kan du “stega” med 2:
for n in range(2, 31, 2):
print(n, end=" ")