首页 > 解决方案 > Python用一个元素替换列表中的多个字符串元素

问题描述

我有一个这样的列表:

list1 = ['hello', 'halo', 'goodbye', 'bye bye', 'how are you?']

例如,我想用“welcome”替换“hello”和“halo”,用“greetings”替换“goodbye”和“bye bye”,所以列表将如下所示:

list1 or newlist = ['welcome', 'welcome', 'greetings', 'greetings', 'how are you?']

我怎样才能以最短的方式做到这一点?

我试过这个,但它不起作用,除非我先将我的列表转换为字符串,但我希望它是列表,无论如何我转换为字符串并更改了单词,然后我尝试将它转换回列表但不是正确转换回来。

标签: pythonlistre

解决方案


如果可以轻松地对替换进行分组,则可以这样做:

list1 = ['hello', 'halo', 'goodbye', 'bye bye', 'how are you?']
new_list = []
group1 = ('hello', 'halo')
group2 = ('goodbye', 'bye bye')

for word in list1:
    if word in group1:
        new_list.append('welcome')
    elif word in group2:
        new_list.append('greetings')
    else:
        new_list.append(word)

print(new_list)
# ['welcome', 'welcome', 'greetings', 'greetings', 'how are you?']

推荐阅读