替换列表中的多个字符串值Python

时间:2017-06-01 12:50:43

标签: python list

我有一个像list = ['happy','angry','sad','emotion]的列表。

所以我想替换列表并创建像

这样的新列表
new_list=[1, 0, 0,'happy']

以下是我的代码,它不起作用。

if emotion=='happy':
list .replace('happy', '1').replace('angry', '0').replace('sad', '0').replace('emotion', 'happy')

这样做的正确方法是什么。请帮帮我!

1 个答案:

答案 0 :(得分:1)

list = ['happy','angry','sad','emotion']
new_list = [int(y) if y.isdigit() else y for y in [x.replace('happy', '1').replace('angry', '0').replace('sad', '0').replace('emotion', 'happy') for x in list]]

如果你想要替换超过这4个值,那么制作一个需要多次替换的广义替换函数是有意义的,例如:两个清单。

编辑:已修复以防您绝对需要数字而不是字符串作为输出