3. Mer om listor

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
Nuvarande version (8 juli 2013 kl. 12.28) (redigera) (ogör)
 
Rad 26: Rad 26:
onsdag = veckodagar[2]
onsdag = veckodagar[2]
-
# Ifall vi vill komma åt de på index 1 till 3
+
# Ifall vi vill komma åt de på iett särskilt indexintervall
vardagar = veckodagar[0:5]
vardagar = veckodagar[0:5]
helgdagar = veckodagar[5:7]
helgdagar = veckodagar[5:7]
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) # ger "måntisonstorfrelörsön"
+
# ger "måntisonstorfrelörsön"
 +
"".join(veckodagar)
-
", ".join(veckodagar) # ger "mån, tis, ons, tor, fre, lör, sön"</pre>
+
# ger "mån, tis, ons, tor, fre, lör, sön"
 +
", ".join(veckodagar) </pre>
Rad 65: Rad 67:
<pre>namnlista = ["Adam", "Bertil", "Ceasar"]
<pre>namnlista = ["Adam", "Bertil", "Ceasar"]
-
namnlista.append("David") # Listan utökas till ["Adam", "Bertil", "Ceasar", "David"]</pre>
+
# Listan utökas till ["Adam", "Bertil", "Ceasar", "David"]
 +
namnlista.append("David") </pre>
Man kan också slå samman två listor med hjälp av ett vanligt plus-tecken:
Man kan också slå samman två listor med hjälp av ett vanligt plus-tecken:
-
<pre>nummerlista = [1, 2, 3] + [4, 5] # Resultatet blir [1, 2, 3, 4, 5]</pre>
+
<pre># Resultatet blir [1, 2, 3, 4, 5]
 +
nummerlista = [1, 2, 3] + [4, 5] </pre>
Rad 77: Rad 81:
# Sortera från minst värde till högst
# Sortera från minst värde till högst
-
nummerlista.sort() # Ger [1, 3, 4, 5, 7, 10]
+
# Ger [1, 3, 4, 5, 7, 10]
 +
nummerlista.sort()
# Sortera från högst värde till minst
# Sortera från högst värde till minst
-
nummerlista.reverse() # Ger [10, 7, 5, 4, 3, 1]
+
# Ger [10, 7, 5, 4, 3, 1]
 +
nummerlista.reverse()
# Ifall du vill ha en sorterad kopia
# Ifall du vill ha en sorterad kopia
-
# nummerlista_kopia = sorted(nummerlista)
+
nummerlista_kopia = sorted(nummerlista)
</pre>
</pre>

Nuvarande version

       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)