3. Mer om listor

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
Rad 55: Rad 55:
<pre>veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"]
<pre>veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"]
-
"".join(veckodagar) # skriver ut "måntisonstorfrelörsön"
+
"".join(veckodagar) # ger "måntisonstorfrelörsön"
-
", ".join(veckodagar) # skriver ut "mån, tis, ons, tor, fre, lör, sön"</pre>
+
", ".join(veckodagar) # ger "mån, tis, ons, tor, fre, lör, sön"</pre>

Versionen från 5 april 2012 kl. 14.45

       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å index 1 till 3
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"]

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

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


Append

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

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

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

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


Sortering

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

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

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

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