Listor
En lista är en uppsättning element inom hakparentes, där ordningen har betydelse och där dubbletter är tillåtna. Elementen i en lista indexeras från , , och så vidare.Den tomma listan innehåller förstås inga element.
Ett enskilt element i en lista kommer man åt genom att använda dess index.
2
Studera mängden
En lista med heltalen konstrueras med [1..15]. Mängden som en lista fås med följande kod.
[4, 9, 14, 19, 24, 29, 34, 39, 44, 49, 54, 59, 64, 69, 74]
Det går att plocka ut en del av en lista.
[19, 24, 29]
[4, 9, 14, 19]
[34, 39, 44, 49, 54, 59, 64, 69, 74]
[14, 29, 44]
[54, 39, 24]
[4, 9, 14, 19, 24, 29, 34, 39, 44, 49, 54, 59, 64, 69, 74]
Notera att ovanstående har inte förändrat A.
[4, 9, 14, 19, 24, 29, 34, 39, 44, 49, 54, 59, 64, 69, 74]
Med negativ index utgår man från slutet av en lista.
[1, 2, 4, 2, 29]
Listvariabler är egentligen etiketter som hänvisar till det minnesutrymme där listan är lagrad. I nedanstående kod defineirar vi tre listvariabler, fast på tre olika sätt.
Lista 1: [1, 2, 3]
Lista 2: [1, 2, 3]
Lista 3: [1, 2, 3]
Om vi nu ändrar lista_2, så ändrar vi samtidigt lista_1, då de hänvisar till samma lista i minnet.
Lista 1: [1, 4, 3]
Lista 2: [1, 4, 3]
Lista 3: [1, 2, 3]
Notera att lista_3 inte ändras, eftersom denna är en kopia av första listan.
Man kan konstruera listor på många olika sätt.
[-3, -2, -1, 0, 1, 2, 3, 4, 5, 6]
[1, 4, 7, 10, 13, 16, 19]
[, , , , , , , ]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[1, 4, 7, 10, 13]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Antal element i en lista bestämmer man med funktionen len.
15
Vilket index har elementet i listan A?
5
Med funktionen count kan vi räkna hur många gånger ett visst element förekommer i en lista.
3
Funktionen sort sorterar en lista.
Funktionen returnerar inte resultatet -- den förändrar aktuell listvariabel och gör därför en tilldelning.
[0, 1, 1, 1, 2, 2, 2, 4, 5]
För att lägga till element i slutet av en lista använder man append.
[0, 1, 1, 1, 2, 2, 2, 4, 5, 77]
Vill man konkatenera två listor gör man det med plus (+).
[1, 2, 3, 5, 6]
Multiplicerar man en lista med ett positivt heltal så konkatenerar Sage kopior av listan.
[5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6]
Vi kan summera elementen i en lista.
585
Även produkten av samtliga element i listan går att enkelt bestämma.
19837740893195045044224
En lista kan även innehålla andra typer av element än tal, t.ex. textsträngar.
['Sage', 'Mathematica', 'Pari/GP']
En lista kan också innehålla listor.
1 2
3 4
5 6
[3, 4]
För att plocka ut den :te elementet i den :te delistan ur en lista skriver man L[m-1][n-1].
3
Låt oss skapa en multiplikationstabell.
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
Förklaring: För varje skapar vi en dellista på formen [a * b for b in [1..9]], d.v.s. en lista med produkten där . Varje sådan lista motsvarar en rad i tabellen. Låt oss förbättra utskriften av tabellen genom att lägga till rubriker för rader och kolumner.
* | 1 2 3 4 5 6 7 8 9
+---+---+----+----+----+----+----+----+----+----+
1 | 1 2 3 4 5 6 7 8 9
2 | 2 4 6 8 10 12 14 16 18
3 | 3 6 9 12 15 18 21 24 27
4 | 4 8 12 16 20 24 28 32 36
5 | 5 10 15 20 25 30 35 40 45
6 | 6 12 18 24 30 36 42 48 54
7 | 7 14 21 28 35 42 49 56 63
8 | 8 16 24 32 40 48 56 64 72
9 | 9 18 27 36 45 54 63 72 81