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

MetodBeskrivningExempel
append()Lägger till ett element i slutetnamn.append("Ella")
insert(index, x)Lägger in ett element på en viss platsnamn.insert(1, "Leo")
remove(x)Tar bort första förekomsten av värdetnamn.remove("Sara")
pop()Tar bort och returnerar sista värdetnamn.pop()
len()Ger antal element i listanlen(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=" ")