Detta skapar en PDF som du sedan kan skriva ut. Du kan även spara ner PDFn och skriva ut senare.
Titel på utskriften?
Tack för ditt bidrag
Om vi kan använda det så lägger vi upp det på sidan. Nedan en länk till ditt bidrag om du vill spara det.
Spara som ...
Du sparar ditt skript under detta namn och kan sedan hämta tillbaka det med samma namn.
Läs in
Läs in ett tidigare sparat skript. Obs att du enbart kan läsa in skript i den webbläsare där du sparade skriptet. Vill du kunna läsa in och spara skript oberoende av webbläsare, så behöver du skaffa ett login (enkelt och gratis).
Skicka in bidrag
Föreslå rubrik
Beskriv vad din kod gör
Skapa kort länk
Använd en kort URL för att skicka länk till koden via SMS eller epost. När mottagaren klickar på länken, så öppnas denna webbsida, med din kod och din text. Länken rensas bort automatiskt om den inte används.
Rubrik (frivilligt)
Beskrivning (frivilligt)
Länk (kopiera hela)
Tupler
ordnad lista
En tupel är en ordnad lista vars tanke är att den ska användas för data som är statiska, dvs normalt inte ska ändras. En tupel är också snabb, ifall prestanda är viktigt.
0
1
2
3
10
12
67
8
Ordnad syftar på att den består av bestämda fack som ligger i ordning och du kan komma åt denna värden med hjälp av dess index-nummer. Första positionen har index 0.
Säg att du har en lång tupel med många värden och det är enbart de två första värdena du är intresserad av. Du kan mönster-matcha ut dessa 2 och placera resten i någon annan varabel. Observera, att *resten blir en lista (du ser det på hakparenteserna, hak = lista), dvs inte är en tupel.
Om du behöver de två sista värda istället så kan du mönster-matcha ut de 2 sista och lägga alla andra värden i en annan variabel.
flaggor = (True, False, False, True)
(*start, a, b) = flaggor
print(a)
print(b)
print(start) # ger lista (som är ändringsbar)
flaggor = (True, False, False, True)
(*start, a, b) = flaggor
print(a)
print(b)
print(start) # ger lista (som är ändringsbar)
indexera bakifrån
Precis som med strängar och listor kan även tupels adresseras bakifrån med negativt index. Ett negativt index räknas då baklänges från sista elementet där -1 är sista elementet (34 i nedan exempel).
Precis som med strängar och listor kan man även klippa ut segment ur en tupel enligt konceptet [start:stop]
Det viktiga att komma ihåg här, det är att stop -siffran inte inkluderas. Dvs om vi kallar x för index, så gäller
[a,b[ = {start ≤ x < stop}
I nedan exempel så betyder 1:3 att vi startar med "Apelsin", "Banan" och sedan är det slut. Päron hade varit index 3, men det inkluderas som sagt inte.
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
# start vid 1 men inkluderar ej slutvärde 3
print(frukt[1:3])
# alla värden upp till men ej inkl slutvärde 3
print(frukt[:3])
# alla värden från position 1 och upp
print(frukt[1:])
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
# start vid 1 men inkluderar ej slutvärde 3
print(frukt[1:3])
# alla värden upp till men ej inkl slutvärde 3
print(frukt[:3])
# alla värden från position 1 och upp
print(frukt[1:])
Så, startvärdet är där vi startar. Sedan fortsätter det till stop, men själva stop -index räknas inte med. Om start utelämnas så är det samma sak som det hade stått 0. Om Slutvärdet utelämnas så tas alla värden fram till slutet.
Även här kan man indexera bakifrån från slutet med negativa värden.
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
# alla värden från position -3 med ej inkl -1
print(frukt[-3:-1])
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
# alla värden från position -3 med ej inkl -1
print(frukt[-3:-1])
I tupels går det att testa om ett värde finns med, precis som med listor.
finns tupel?
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
if "Banan" in frukt:
print("Japp, banan finns!")
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
if "Banan" in frukt:
print("Japp, banan finns!")
ändra i tupler
hack
Men du kan ej ändra en tuple, det är en av egenskaperna och skillnad mot lista. Så en tuple passar bra för värden, koordinater m.m. som inte skall ändras. Men det går såklart "hacka" konceptet lite genom att konvertera tupeln till en lista, ändra i listan och sedan konvertera tillbaka. Job done. Case closed.
Du är också tillåten lägga ihop två eller fler tupler om du markerar tuplerna som påbyggbara med avslutande , -tecken. Här skiljer sig tupler från listor. Listor kan byggas ihop utan denna detalj medans tupler behöver förberedas på detta sätt, för att vara ihopbyggbara klossar. Poängen med tupler är ju att de inte ska ändras och moduleras, så det verkar vettigt ifall ändringar "modereras" på detta sätt.
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
extra = ("Tomat",)
fler = ("Gurka", "Paprika",)
frukt += extra + fler
print(frukt)
frukt = ("Äpple", "Apelsin", "Banan", "Päron")
extra = ("Tomat",)
fler = ("Gurka", "Paprika",)
frukt += extra + fler
print(frukt)
ta bort element
Men vill du ta bort element, då måste du "hacka" konceptet åter igen. Det är inte meningen att du ska ta bort element i tupler. Om du måste ta bort element i tupler kanske du borde valt listor istället.
Behöver du väldigt många av en viss frukt så kan du använda samma metod som med strängar och listor. Multiplikatorn tar samma tupel så många gånger du önskar.
För att iterera (loopa) över en tupel kan du tex använda for -loop. Det fungerar precis som med listor.
data = (4, 5, 2, 78, 90, 34)
for i in range(len(data)):
print(data[i])
data = (4, 5, 2, 78, 90, 34)
for i in range(len(data)):
print(data[i])
Eller såhär
data = (4, 5, 2, 78, 90, 34)
for d in data:
print(d)
data = (4, 5, 2, 78, 90, 34)
for d in data:
print(d)
Packa upp med * stjärnoperator
Man kan tänka på stjärnoperatorn som att den packar upp tupeln, dvs plockar bort () kvar är bara en serie data (tal, strängar, annat). Den upp-packade tupeln kan du sedan paketera på nytt i något annat sammanhang.
Detta fungerar på samma sätt som med listor eller set's (mängder).