在单个语句中替换列表中的多个字符串

我试图在一个语句中用两个不同的词替换此列表的第三个和第四个词,但似乎无法找到我尝试过的方法对错误不起作用AttributeError: 'list' object has no attribute 'replace'

friends = ["Lola", "Loic", "Rene", "Will", "Seb"]
friends.replace("Rene", "Jack").replace("Will", "Morris")


烙印99
浏览 217回答 3
3回答

长风秋雁

如果你想进行多次替换,最简单的方法可能是制作一个你想用什么替换的字典: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]

侃侃尔雅

另一种方式,如果您不介意将列表转换为 a 的开销pandas.Series:import pandas as pdfriends = ["Lola", "Loic", "Rene", "Will", "Seb"]friends = pd.Series(friends).replace(to_replace={"Rene":"Jack", "Will":"Morris"}).tolist()print(friends)#['Lola', 'Loic', 'Jack', 'Morris', 'Seb']

狐的传说

这是一个不太漂亮的解决方案,但仍然是一个单行: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"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python