Strängars Oföränderlighet
I Python är strängar oföränderliga: när de väl har skapats kan tecknen de innehåller inte ändras direkt. Varje "ändring" du gör skapar faktiskt en ny sträng. Detta är viktigt för korrekthet (inga oavsiktliga ändringar på plats) och för prestanda (hur du bygger större strängar).
Inga ändringar på plats
Du kan läsa tecken via index, men du kan inte tilldela dem nya värden.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De flesta strängmetoder returnerar en ny sträng och lämnar originalet oförändrat.
12345678# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Kedjning fungerar bra, men kom ihåg att du får ett nytt objekt vid varje steg.
123456# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
"Modifiering" genom att skapa en ny sträng
Använd slicing, replace eller konkatenering för att producera ett nytt värde.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Effektiv uppbyggnad
Upprepad användning av + i stora loopar kan vara långsam (många mellanliggande strängar). Ett vanligt mönster är att samla delar och slå ihop dem en gång:
1234# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Du kommer att lära dig mer om sammanslagnings- och formateringsmönster i nästa kapitel.
1. Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?
2. Vad kommer koden att skriva ut?
3. Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.45
Strängars Oföränderlighet
Svep för att visa menyn
I Python är strängar oföränderliga: när de väl har skapats kan tecknen de innehåller inte ändras direkt. Varje "ändring" du gör skapar faktiskt en ny sträng. Detta är viktigt för korrekthet (inga oavsiktliga ändringar på plats) och för prestanda (hur du bygger större strängar).
Inga ändringar på plats
Du kan läsa tecken via index, men du kan inte tilldela dem nya värden.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De flesta strängmetoder returnerar en ny sträng och lämnar originalet oförändrat.
12345678# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Kedjning fungerar bra, men kom ihåg att du får ett nytt objekt vid varje steg.
123456# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
"Modifiering" genom att skapa en ny sträng
Använd slicing, replace eller konkatenering för att producera ett nytt värde.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Effektiv uppbyggnad
Upprepad användning av + i stora loopar kan vara långsam (många mellanliggande strängar). Ett vanligt mönster är att samla delar och slå ihop dem en gång:
1234# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Du kommer att lära dig mer om sammanslagnings- och formateringsmönster i nästa kapitel.
1. Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?
2. Vad kommer koden att skriva ut?
3. Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?
Tack för dina kommentarer!