簡體   English   中英

將 y 的實例更改為 x 中的 z(其中 x 是一個列表)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM