Python如何查找按j值递增的嵌套列表中的缺失j值
实现方案
核心思路
- 遍历输入列表的所有子元素,提取每一个
[i,j]对中的j值,用集合存储自动去重 - 由于输入列表本身按j值递增排序,提取到的j值集合的最小值就是序列起始j、最大值就是序列结束j
- 遍历从起始j到结束j的所有整数,不在已存在j集合中的值就是缺失的j值
完整代码
I = [ [[8, 1]], [[1, 2]], [[0, 3]], [[15, 7]], [[7, 8]], [[2, 9], [8, 9]], [[9, 10]] ] # 提取所有出现过的j值 existed_j = set() for group in I: for i_j_pair in group: existed_j.add(i_j_pair[1]) # 查找区间内缺失的j值 min_j = min(existed_j) max_j = max(existed_j) Missing = [j for j in range(min_j, max_j + 1) if j not in existed_j] print(Missing)
运行结果
执行代码后输出结果为:
[4, 5, 6]
和期望输出完全一致。
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

