3. Mer om listor

Programmeringsteknik

Hoppa till: navigering, sök
       Teori          Mer om listor          Övningar      

Innehåll:

  • Olika sätt att komma åt värden i en lista
  • Skriva ut listor
  • Append
  • Sortering

Om du vill lära dig ännu mer om listor så finns det en länk på kursens huvudsida under rubriken Pythonlänkar.


Olika sätt att komma åt värden i en lista

veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"]

# Ifall vi vet index på det värde vi vill komma åt
onsdag = veckodagar[2]

# Ifall vi vill komma åt de på iett särskilt indexintervall
vardagar = veckodagar[0:5]
helgdagar = veckodagar[5:7] 

# Ifall vi vill komma åt allt förutom de två första värdena
veckodagar[2:]

# Ifall vi enbart vill komma åt de två första värdena
veckodagar[:2])

# Ifall vi vill skriva ut varannat värde
udda_dagar = veckodagar[::2])
jämna_dagar = veckodagar[1::2])

# Ifall vi inte vet hur många värden som finns och vill komma åt det sista värdet
print(namnlista[len(namnlista)-1])


Skriva ut listor

nummerlista = [1,2,3,4,5]

for nummer in nummerlista:
    print(nummer)

Om en lista består av strängar så kan man istället använda sig av join. Den funkar så här: <sträng>.join([lista]). <sträng> är den separator som ska skilja elementen i listan åt, det kan vara t.ex. radbrytning: "\n", mellanrum: " " eller punkter: ".."

veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"]

# ger "måntisonstorfrelörsön"
"".join(veckodagar)   

# ger "mån, tis, ons, tor, fre, lör, sön"
", ".join(veckodagar) 


Append

Man kan lägga till ett nytt element i slutet av en lista med hjälp av append():

namnlista = ["Adam", "Bertil", "Ceasar"]
# Listan utökas till ["Adam", "Bertil", "Ceasar", "David"]
namnlista.append("David")    

Man kan också slå samman två listor med hjälp av ett vanligt plus-tecken:

# Resultatet blir [1, 2, 3, 4, 5]
nummerlista = [1, 2, 3] + [4, 5]    


Sortering

nummerlista = [3, 7, 4, 1, 5, 10]

# Sortera från minst värde till högst
# Ger [1, 3, 4, 5, 7, 10]
nummerlista.sort()   

# Sortera från högst värde till minst
# Ger [10, 7, 5, 4, 3, 1]
nummerlista.reverse()    

# Ifall du vill ha en sorterad kopia
nummerlista_kopia = sorted(nummerlista)