Gå till innehållet

Dela och slå ihop text: split() och join()

  • split() delar en sträng till en lista av ord. Standard är att dela på alla typer av whitespace (mellanslag, tabbar, radbrytningar).
  • " ".join(lista) sätter ihop en lista av ord till en sträng med ett mellanslag mellan orden (eller annan avskiljare du väljer).
Python
mening = "Jag gillar blå bilar"
ord = mening.split()           # ['Jag', 'gillar', 'blå', 'bilar']
ny = "-".join(ord)             # 'Jag-gillar-blå-bilar'
print(ny)

# Dela på ett visst tecken, t.ex. komma
rad = "äpple,banan,päron"
frukter = rad.split(",")      # ['äpple', 'banan', 'päron']

# Städa varje del från extra mellanslag
rad2 = "  äpple , banan ,  päron  "
delar = [del.strip() for del in rad2.split(",")]
print(delar)  # ['äpple', 'banan', 'päron']

Tips: - Efter split(',') kan det finnas extra mellanslag. Använd strip() på varje del. - För att sätta ihop ord med exakt ett mellanslag, använd ' '.join(...) i stället för att lägga till egna mellanslag i en loop.

Steg-för-steg-exempel: Namn till initialer med split() och join()

Vi gör om ett helt namn till initialer, t.ex. "Anna Lisa" → "A.L.".

Python
namn = input("Skriv ditt namn: ")          # 1) Läs hela namnet
namn = namn.strip()                          # 2) Ta bort extra mellanslag i kanterna

delar = namn.split()                         # 3) Dela upp i ord: ["Anna", "Lisa"]
initialer_lista = []                         # 4) Skapa tom lista för initialer

for ord in delar:                            # 5) Gå igenom varje ord
    initial = ord[0].upper()                 # 6) Ta första bokstaven och gör versal
    initialer_lista.append(initial)          # 7) Lägg till i listan

resultat = ".".join(initialer_lista) + "."   # 8) Sätt ihop med punkt och lägg till sista punkten
print(resultat)                               # 9) Skriv ut t.ex. "A.L."

Förklaring rad för rad: - Rad 1–2: Vi ser till att bortse från extra mellanslag i början/slut. - Rad 3: split() utan argument delar på alla mellanrum — bra för flera ord. - Rad 4–7: Vi bygger en lista med första bokstaven från varje ord, i versaler. - Rad 8–9: 'separator'.join(lista) sätter ihop elementen med en separator mellan.

Uppgifter

1) Läs en mening och skriv hur många ord den innehåller. 2) Läs en mening och skriv ut varje ord på egen rad med ordnummer (1., 2., 3., ...). 3) Läs tre ord (på en rad, separerade med mellanslag) och skriv tillbaka dem separerade med - med hjälp av "-".join(...). 4) Mini-projekt: Namn-initialer. Läs ett namn (flera ord), ta första bokstaven i varje ord (versalt) och skriv t.ex. "A.L.".