我有一个包含项目名称的列表(item01,item02等)
我想删除一些旧项目并在列表中添加新项目
我尝试了这段代码:
add_items = 'item22,item23'.split(',')
rmv_items = 'item01,item02'.split(',')
cur_kit_compon = ['item01', 'item02', 'item03', 'item4', 'item5']
for index, x in enumerate(add_items):
new_kit_compon = [y.replace(rmv_items[index], x) for y in cur_kit_compon]
print('-------------------------')
print(new_kit_compon)
代码输出:
['item01', 'item23', 'item03', 'item4', 'item5']
问题:
该代码仅删除和添加1个项目,而不是2个项目
所需输出:
['item22', 'item23', 'item03', 'item4', 'item5']
谢谢你的帮助
最佳答案
您可以构建一个字典,将要删除的项目映射到其替换项,然后使用该字典在列表中查找项目的替换项。
add_items = 'item22,item23'.split(',')
rmv_items = 'item01,item02'.split(',')
replacements = dict(zip(rmv_items, add_items))
cur_kit_compon = ['item01', 'item02', 'item03', 'item4', 'item5']
res = [replacements.get(item, item) for item in cur_kit_compon]
# ['item22', 'item23', 'item03', 'item4', 'item5']