def remove_char(text):
for letter in text[1]:
text[0] = text[0].replace(letter," ")
return text[0]
這是返回:'海峽' 對象不支持的項目分配(蟒蛇)
'str' object does not support item assignment
爲什麼?我該如何做這項工作?
def remove_char(text):
for letter in text[1]:
text[0] = text[0].replace(letter," ")
return text[0]
這是返回:'海峽' 對象不支持的項目分配(蟒蛇)
'str' object does not support item assignment
爲什麼?我該如何做這項工作?
在Python中,字符串不可變,這意味着它們不能被改變。但是,您可以用新版本的字符串替換整個變量。
實施例:
text = ' ' + text[1:] # replaces first character with space
字符串是不可變的。通過嘗試:
text[0] = text[0].replace(letter," ")
您試圖訪問字符串並改變它,這是由於該字符串的不變性不允許的。相反,你可以使用一個for
環路和一些片斷:
for i in range(0, len(y)):
if y[i] == ",":
print y[i+1:len(y)]
break
你可以改變一個變量被分配到字符串(第二一段代碼),而不是字符串本身(你的代碼)。
hmm,也許我應該已經更清楚了。輸入(文本)是一個用逗號分隔的字符串。當逗號右側字符串中的字符出現時,我想刪除逗號左側字符串中的所有字母。 – user1072337
請檢查我的編輯 –
假設參數text
是一個字符串,行for letter in text[1]:
對我沒有多大意義,因爲text[1]
是單個字符。迭代單字母字符串有什麼意義?
但是,如果text
是字符串的名單,那麼你的函數不拋出任何異常,它只是返回從第一個字符串(text[0]
)第二個字符串的所有字母替換返回的字符串( text[1]
)由一個空格(" "
)。
下面的例子說明如何remove_char
作品時,它的參數是一個字符串列表:
In [462]: remove_char(['spam', 'parrot', 'eggs'])
Out[462]: 's m'
In [463]: remove_char(['bar', 'baz', 'foo'])
Out[463]: ' r'
In [464]: remove_char(['CASE', 'sensitive'])
Out[464]: 'CASE'
也許這不是預期的行爲...
'文本= text.replace(信」 「)',你不能使用字符串賦值。另外'for text in text [1]'與text = text.replace(text [1],「」)' –
相同。換句話說:一個python字符串是不可變的。 – SuperSaiyan