我试图在一个语句中用两个不同的词替换此列表的第三个和第四个词,但似乎无法找到我尝试过的方法对错误不起作用AttributeError: 'list' object has no attribute 'replace':friends = ["Lola", "Loic", "Rene", "Will", "Seb"]
friends.replace("Rene", "Jack").replace("Will", "Morris")
3 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
如果你想进行多次替换,最简单的方法可能是制作一个你想用什么替换的字典:
replacements = {"Rene": "Jack", "Will": "Morris"}
然后使用列表理解:
friends = [replacements[friend] if friend in replacements else friend for friend in friends]
或者更简洁,使用dict.get()
默认值。
friends = [replacements.get(friend, friend) for friend in friends]
侃侃尔雅
TA贡献1801条经验 获得超16个赞
另一种方式,如果您不介意将列表转换为 a 的开销pandas.Series:
import pandas as pd
friends = ["Lola", "Loic", "Rene", "Will", "Seb"]
friends = pd.Series(friends).replace(to_replace={"Rene":"Jack", "Will":"Morris"}).tolist()
print(friends)
#['Lola', 'Loic', 'Jack', 'Morris', 'Seb']
狐的传说
TA贡献1804条经验 获得超3个赞
这是一个不太漂亮的解决方案,但仍然是一个单行:
friends = list(map(lambda x: x if x != "Will" else "Morris", map(lambda x: x if x != "Rene" else "Jack", friends)))
简要说明:
这是一个“map(lambda, list)”解决方案,其输出列表作为输入列表传递给另一个外部“map(lambda, list)”解决方案。
的lambda
在内部map
是用于替换"Will"
使用"Morris"
。
所述lambda
外map
是用于替换"Rene"
与"Jack"
添加回答
举报
0/150
提交
取消