python - 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?']
我怎样才能以最短的方式做到这一点?
我试过这个,但它不起作用,除非我先将我的列表转换为字符串,但我希望它是列表,无论如何我转换为字符串并更改了单词,然后我尝试将它转换回列表但不是正确转换回来。
解决方案
如果可以轻松地对替换进行分组,则可以这样做:
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?']
推荐阅读
- php - 以下邮件不会产生带双引号的换行符
- javascript - 如何将 JSON 对象写入现有 JSON 文件
- r - R中的波浪号(〜)运算符
- c++ - Template with auto-type return deduction
- javascript - 在重定向上添加参数
- ruby-on-rails - Rails 使用特定格式进行验证
- python - Gevent中设置的pool.Pool没有效果
- typo3 - TYPO3 - 使用 UserTS 隐藏“将用户设置重置为默认状态”按钮
- keras - 如何获取使用 Keras 图像处理生成的新增强图像的数量?
- android - MIUI 无法读取联系人