【发布时间】:2020-11-25 05:34:22
【问题描述】:
我有一个包含不同名称的列表:
list = ['Tom', 'Mary', 'Robin', 'Tom']
我想做的是将'Tom'替换为'MESSAGE',将其他所有人替换为'RESPONSE'。
如下:
list = ['MESSAGE', 'RESPONSE', 'RESPONSE', 'MESSAGE']
有办法吗?最好只使用一行代码。
【问题讨论】:
我有一个包含不同名称的列表:
list = ['Tom', 'Mary', 'Robin', 'Tom']
我想做的是将'Tom'替换为'MESSAGE',将其他所有人替换为'RESPONSE'。
如下:
list = ['MESSAGE', 'RESPONSE', 'RESPONSE', 'MESSAGE']
有办法吗?最好只使用一行代码。
【问题讨论】:
这是一个简单的列表理解:
["MESSAGE" if name == "Tom" else "RESPONSE" for name in list]
附带说明,请勿使用 list 等内置函数来命名变量。
【讨论】:
你可以试试list comprehension:
list = ["MESSAGE" if item == "Tom" else "RESPONSE" for item in list]
【讨论】:
这是一个尝试,它在一个单一的行中。如果列表仅包含 2 个唯一值,则
replacedList = ['MESSAGE' if item == 'Tom' else 'RESPONSE' for item in list]
来自here的参考
【讨论】: