[英]Change instance of y to z in x(where x is a list)
我寫了一個 function 將 x 中 y 的所有實例更改為 z (其中 x 是一個列表),但不知何故我的代碼不起作用。 結果應該是 [1, 'zzz', 3, 1, 'zzz', 3]。 我在下面附上了我的代碼,感謝您的幫助。 提前致謝。
x = [1, 2, 3, 1, 2, 3]
def changeThem(x,y,z):
replace = {y : z}
for key, value in replace.items():
x = x.replace(key, value)
print(x)
changeThem(x,2,'zzz')
列表沒有.replace()
方法。 下面的呢?
x = [1, 2, 3, 1, 2, 3]
def changeThem(x,y,z):
return [z if i == y else i for i in x]
print(changeThem(x, 2, 'zz'))
function 僅包含一行,因此可能甚至不需要定義此 function。 但我會留下它,以防你想多次調用它。
您的代碼產生一個AttributeError
。 這是因為list
沒有replace
方法。 str
有一個replace
方法,所以這可能是你感到困惑的地方。
您可以通過非常簡單的列表理解來完成此操作:
x = [z if e == y else e for e in x]
本質上,上述列表理解狀態:
對於列表 x 中的每個值 e,如果元素等於 y,則將其替換為 z。 否則,只需將元素保留在那里。
它也等價於以下內容:
result = []
for e in x:
if e == y:
result.append(z)
else:
result.append(x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.