Skip to main content
 首页 » 编程设计

python之循环时查找并替换列表中的字符串值

2025年05月04日29kevingrace

我有一个包含项目名称的列表(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']