Start | split
 

split(sep=None, maxsplit=-1)



Tar en sträng och en separator och ger ifrån sig en lista.
s = "detta är en text där varje ord är separerat med mellanslag" lista = s.split(" ") print(lista)
Vi kan sätta en maxgräns för hur många ord som skall splittas till en lista.
s = "detta är en text där varje ord är separerat med mellanslag" lista = s.split(" ", 3) print(lista)
Hur får vi ut bepa?
s = "apa:bepa:cepa depa lepa repa tepa" text = s.split()[0].split(":")[1] print(text)
Hur får vi datum och hur skriver vi om datum på svenskt format?
s = "apa;bepa;cepa;depa;lepa;11/07/2024;11:56" datum_us = s.split(";")[5].split("/") datum_se = datum_us[2]+'-'+datum_us[0]+'-'+datum_us[1] s_se = ";".join(s.split(";")[:-2])+';'+datum_se+';'+s.split(";")[-1] print(s_se)
Tänk dig att du har olika strängar som ser ut som nedan, där inledningen är olika lång med slutet av meningen verkar konsekvent. Plocka ut minutrarna.
s1="apa bepa cepa 12:45" s2="apa bepa cepa depa lepa 13:03" s3="apa 10:06" minuter = int(s1.split()[-1][-2:]) print(minuter) minuter = int(s2.split()[-1][-2:]) print(minuter) minuter = int(s3.split()[-1][-2:]) print(minuter)
Plocka ut texten innan klocksplaget
s1="apa bepa cepa 12:45" s2="apa bepa cepa depa lepa 13:03" s3="apa 10:06" print(" ".join(s1.split()[:-1])) print(" ".join(s2.split()[:-1])) print(" ".join(s3.split()[:-1]))
Räkna om till minuter sedan midnatt...
s1="apa bepa cepa 12:45" s2="apa bepa cepa depa lepa 13:03" s3="apa 10:06" klocka = s1.split()[-1].split(":") minuter_sedan_midnatt = int(klocka[0])*60 + int(klocka[1]) print(minuter_sedan_midnatt) klocka = s2.split()[-1].split(":") minuter_sedan_midnatt = int(klocka[0])*60 + int(klocka[1]) print(minuter_sedan_midnatt) klocka = s3.split()[-1].split(":") minuter_sedan_midnatt = int(klocka[0])*60 + int(klocka[1]) print(minuter_sedan_midnatt)

split() med input()

Det är väldigt användbart med split när vi hämtar in data med input(). Säg att vi frågar efter en koordinat på formen x,y

Då kan vi göra såhär...
(x,y) = input().split(',') print(x) print(y)

tentafråga

Vad händer här? Vi splittar strängen till en lista. Vi grabbar tag i ordet med index 3 och i detta ord startar vi läsa vid tecken 1 och stop är vid tecken -1. Men som du lärt dig inkluderas inte slut-tecknet, så vi inkluderar enbart tecken -2 (från slutet).
s = 'from python to typhoon'.split()[3][1:-1] print(s)

Splitta på många olika tecken

Säg att vi vill splitta en lista som har många olika tecken vi vill splitta på? Vi fuskar och importerar re !

Nedan kod splittar ett matematiskt uttryck. Split splittar på * / + - ( )
import re uttryck = '17-120.9*(12+12*312)-8/(3+a)' splittad = re.split('(\*|\+|\-|\/|\(|\))', uttryck) splittad = list(filter(None, splittad)) print(splittad)
17.014980316162 ms