【发布时间】:2019-05-20 19:30:34
【问题描述】:
我有一个包含项目名称的列表(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']
感谢大家的帮助
【问题讨论】:
-
其他答案很完美。但是,如果您只是在 for 循环 (
new_kit_compon = cur_kit_compon[:]) 之前复制cur_kit_compon然后更改列表理解以从该新列表 (new_kit_compon = [y.replace(rmv_items[index], x) for y in new_kit_compon]) 中获取项目,则您的代码可以“工作”。这效率不高且不推荐,但它可能会帮助您理解为什么您的代码只替换了一项。
标签: python list-comprehension enumerate