在 Python 中找出列表中缺失的元素


如果我们有一个包含数字的列表,我们可以检查这些数字是否连续,还可以找出哪些数字在某范围内缺失,而最高数是最终值。

使用 range 和 max

我们可以设计一个 for 循环来使用 not in 运算符检查某个范围内缺失的值。然后通过将这些值添加到新列表中,记录所有这些值,该新列表成为结果集。

示例

 实时演示

listA = [1,5,6, 7,11,14]

# Original list
print("Given list : ",listA)

# using range and max
res = [ele for ele in range(max(listA) + 1) if ele not in listA]

# Result
print("Missing elements from the list : \n" ,res)

输出

运行以上代码会产生以下结果 −

Given list : [1, 5, 6, 7, 11, 14]
Missing elements from the list :
[0, 2, 3, 4, 8, 9, 10, 12, 13]

使用 set

我们使用 set 函数来保存给定范围内的所有唯一值,然后减去给定列表。因此,这会产生包含连续数字中缺失值的结果集。

示例

 实时演示

listA = [1,5,6, 7,11,14]

# printing original list
print("Given list : ",listA)

# using set
res = list(set(range(max(listA) + 1)) - set(listA))

# Result
print("Missing elements from the list : \n" ,res)

输出

运行以上代码会产生以下结果 −

Given list : [1, 5, 6, 7, 11, 14]
Missing elements from the list :
[0, 2, 3, 4, 8, 9, 10, 12, 13]

更新于: 26-8-2020

1K+ 浏览量

职业生涯精彩启航

完成课程,获得认证

立即开始
广告
© . All rights reserved.