Python实现替换列表中指定数字后方元素的方法求助
Python列表替换需求解决方案
给定:
list_a=['ball', 'red', '2', 'fly', 'bee' , '3' , 'bag']list_b=['2' , '3']x= 'Blue'
需要将list_a中每个属于list_b的元素后的紧接元素替换为x,最终得到目标列表:['ball' , 'red' , '2' , 'Blue' , 'bee' , '3' , 'Blue']
实现代码
方式1:创建新列表(不修改原数据)
list_a = ['ball', 'red', '2', 'fly', 'bee', '3', 'bag'] list_b = ['2', '3'] x = 'Blue' # 复制原列表,避免修改原始数据 list_c = list_a.copy() for idx, item in enumerate(list_c): # 检查当前元素在目标集合中,且不是列表最后一位(防止索引越界) if item in list_b and idx < len(list_c) - 1: list_c[idx + 1] = x print(list_c)
方式2:直接修改原列表
list_a = ['ball', 'red', '2', 'fly', 'bee', '3', 'bag'] list_b = ['2', '3'] x = 'Blue' for idx in range(len(list_a)): if list_a[idx] in list_b and idx < len(list_a) - 1: list_a[idx + 1] = x # 此时list_a即为目标列表 print(list_a)
关键说明
- 用
enumerate可以同时获取元素的索引和值,快速定位需要替换的下一个元素位置 - 加入
idx < len(列表) - 1的判断,是为了避免当list_b的元素处于列表最后一位时,出现索引越界错误 - 优先推荐方式1,复制原列表进行修改能保留原始数据,避免后续操作受影响
内容的提问来源于stack exchange,提问作者shahin syr
相关产品推荐
相关产品推荐

