如何在Python中查找列表中相邻元素间的缺失元素?
问题:找出列表中相邻元素间的缺失值
输入列表:
['1', '5', '6', '7', '10']
期望输出:找出相邻元素之间的缺失值,最终得到:
['2', '3', '4', '8', '9']
已完成的预处理代码:
# Sort elements in a list input_list.sort() # Remove duplicates from a list input_list = list(dict.fromkeys(input_list))
解决方案
在预处理的基础上,通过遍历相邻元素对计算缺失值,具体实现如下:
input_list = ['1', '5', '6', '7', '10'] # 预处理:排序+去重 input_list.sort() input_list = list(dict.fromkeys(input_list)) # 存储缺失值的结果列表 missing_values = [] # 遍历每一对相邻元素 for i in range(len(input_list) - 1): # 将字符串元素转为整数,方便数值计算 current = int(input_list[i]) next_num = int(input_list[i+1]) # 两数差大于1时,说明存在缺失值 if next_num - current > 1: # 生成中间所有整数,转回字符串后加入结果列表 for num in range(current + 1, next_num): missing_values.append(str(num)) print(missing_values)
代码说明:
- 类型转换:输入元素是字符串类型,转为整数才能进行数值比较,最后转回字符串保证输出格式一致。
- 相邻元素遍历:通过
range(len(input_list)-1)遍历每一对相邻元素,避免索引越界。 - 缺失值生成:当相邻整数差大于1时,用
range(current+1, next_num)生成中间所有整数,逐个转为字符串后添加到结果列表。
运行代码后,会输出期望结果:['2', '3', '4', '8', '9']
内容的提问来源于stack exchange,提问作者My Car
相关产品推荐
相关产品推荐

