Python 将x中y的实例更改为z(其中x是列表)
我编写了一个函数,将x中y的所有实例都更改为z(其中x是一个列表),但不知何故,我的代码不起作用。结果应该是[1,'zzz',3,1,'zzz',3]。我在下面附上了我的代码,非常感谢您的帮助。提前谢谢Python 将x中y的实例更改为z(其中x是列表),python,Python,我编写了一个函数,将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) pr
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'))
该函数只包含一行,因此定义该函数甚至可能没有必要。但我会留下它,以防您想多次调用它。您的代码会生成一个
属性错误。这是因为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)
正如其他议员所解释,;列表没有替换函数,但这里有另一个提示:通常,当您想要转换/操作列表时,您需要迭代该列表项。逐项阅读,做条件逻辑或使用列表理解、映射或其他pythonic方式。