3. Mer om listor
Programmeringsteknik
(Skillnad mellan versioner)
(Ny sida: __NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" | {{Mall:Ej vald flik|[[3. Listor och Anrop|Teo...) |
|||
| (3 mellanliggande versioner visas inte.) | |||
| Rad 3: | Rad 3: | ||
| style="border-bottom:1px solid #797979" width="5px" | | | style="border-bottom:1px solid #797979" width="5px" | | ||
{{Mall:Ej vald flik|[[3. Listor och Anrop|Teori]]}} | {{Mall:Ej vald flik|[[3. Listor och Anrop|Teori]]}} | ||
| - | {{Mall: | + | {{Mall:Vald flik|[[3. Mer om listor|Mer om listor]]}} |
| - | {{Mall: | + | {{Mall:Ej vald flik|[[3. Övningar|Övningar]]}} |
| style="border-bottom:1px solid #797979" width="100%"| | | style="border-bottom:1px solid #797979" width="100%"| | ||
|} | |} | ||
| Rad 10: | Rad 10: | ||
{{Info| | {{Info| | ||
'''Innehåll:''' | '''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 [[Huvudsida#Pythonlänkar|Pythonlänkar]]. | |
| - | <pre>namn = ["Adam", "Bertil", "Ceasar"] | ||
| - | namn.append("David") # Listan namn utökas till ["Adam", "Bertil", "Ceasar", "David"]</pre> | ||
| - | + | ==Olika sätt att komma åt värden i en lista== | |
| - | <pre> | + | <pre>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])</pre> | ||
| + | |||
| + | |||
| + | ==Skriva ut listor== | ||
| + | |||
| + | <pre>nummerlista = [1,2,3,4,5] | ||
| + | |||
| + | for nummer in nummerlista: | ||
| + | print(nummer)</pre> | ||
| + | |||
| + | Om en lista består av strängar så kan man istället använda sig av <code>join</code>. Den funkar så här: | ||
| + | <code><sträng>.join([lista])</code>. <code><sträng></code> är den separator som ska skilja elementen i listan åt, det kan vara t.ex. radbrytning: "\n", mellanrum: " " eller punkter: ".." | ||
<pre>veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"] | <pre>veckodagar = ["mån", "tis", "ons", "tor", "fre", "lör", "sön"] | ||
| - | vardagar = veckodagar[0:5] # plockar ut elementen fr o m index 0 t o m index 4 i listan | ||
| - | helgdagar = veckodagar[5:7] # plockar ut elementen fr o m index 5 t o m index 6 i listan</pre> | ||
| - | + | # ger "måntisonstorfrelörsön" | |
| + | "".join(veckodagar) | ||
| + | |||
| + | # ger "mån, tis, ons, tor, fre, lör, sön" | ||
| + | ", ".join(veckodagar) </pre> | ||
| + | |||
| + | |||
| + | ==Append== | ||
| + | |||
| + | Man kan lägga till ett nytt element i slutet av en lista med hjälp av <code>append()</code>: | ||
| + | |||
| + | <pre>namnlista = ["Adam", "Bertil", "Ceasar"] | ||
| + | # 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: | ||
| + | |||
| + | <pre># Resultatet blir [1, 2, 3, 4, 5] | ||
| + | nummerlista = [1, 2, 3] + [4, 5] </pre> | ||
| + | |||
| + | |||
| + | ==Sortering== | ||
| + | |||
| + | <pre>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) | ||
| + | </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)
