Strengens Uforanderlighed
I Python er strenge immutable: når de først er oprettet, kan tegnene de indeholder ikke ændres direkte. Enhver "ændring" du foretager, opretter faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer direkte i strengen) og for ydeevne (hvordan du opbygger større strenge).
Ingen ændringer direkte i strengen
Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele dem nye værdier.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De fleste strengmetoder returnerer en ny streng og lader den oprindelige være uændret.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Kædning er acceptabelt, men husk at du får et nyt objekt ved hvert trin.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Ændring" ved at oprette en ny streng
Brug slicing, replace eller sammenkædning for at producere en ny værdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Effektiv opbygning
Gentagen brug af + i store løkker kan være langsom (mange mellemliggende strenge). Et almindeligt mønster er at samle dele og sammenkæde én gang:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Du lærer flere sammenkædnings-/formateringsmønstre i næste kapitel.
1. Hvilken linje forsøger at ændre en streng in place og vil udløse en fejl?
2. Hvad vil koden udskrive?
3. Du skal samle en lang streng fra mange små dele. Hvad anbefales?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain why string immutability is important in Python?
What are some common mistakes people make when working with immutable strings?
Can you show more examples of efficient string building?
Awesome!
Completion rate improved to 5.26
Strengens Uforanderlighed
Stryg for at vise menuen
I Python er strenge immutable: når de først er oprettet, kan tegnene de indeholder ikke ændres direkte. Enhver "ændring" du foretager, opretter faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer direkte i strengen) og for ydeevne (hvordan du opbygger større strenge).
Ingen ændringer direkte i strengen
Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele dem nye værdier.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De fleste strengmetoder returnerer en ny streng og lader den oprindelige være uændret.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Kædning er acceptabelt, men husk at du får et nyt objekt ved hvert trin.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Ændring" ved at oprette en ny streng
Brug slicing, replace eller sammenkædning for at producere en ny værdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Effektiv opbygning
Gentagen brug af + i store løkker kan være langsom (mange mellemliggende strenge). Et almindeligt mønster er at samle dele og sammenkæde én gang:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Du lærer flere sammenkædnings-/formateringsmønstre i næste kapitel.
1. Hvilken linje forsøger at ændre en streng in place og vil udløse en fejl?
2. Hvad vil koden udskrive?
3. Du skal samle en lang streng fra mange små dele. Hvad anbefales?
Tak for dine kommentarer!