นี้เป็นเพราะสายจะไม่เปลี่ยนรูปในหลาม
ซึ่งหมายความว่าX.replace("hello","goodbye")
ผลตอบแทนที่ได้สำเนาX
ที่มีการเปลี่ยนที่ทำ ด้วยเหตุนี้คุณจึงต้องแทนที่บรรทัดนี้:
X.replace("hello", "goodbye")
ด้วยบรรทัดนี้:
X = X.replace("hello", "goodbye")
กว้างกว่านี้เป็นจริงสำหรับทุกวิธีสตริงหลามที่มีการเปลี่ยนแปลงเนื้อหาของสตริง "ในสถานที่"เช่นreplace
, strip
, translate
, lower
/ upper
, join
...
คุณต้องกำหนดผลลัพธ์ให้กับบางสิ่งหากคุณต้องการใช้และไม่ทิ้งมันไปเช่น
X = X.strip(' \t')
X2 = X.translate(...)
Y = X.lower()
Z = X.upper()
A = X.join(':')
B = X.capitalize()
C = X.casefold()
และอื่น ๆ
x += 'a'
กรณีพิเศษเช่นstackoverflow.com/a/40996908/6260170