我正在尝试制作一种更有效的方法来查找数字数组,并查找缺少的数字。我有一系列从1到20的数字,但有一个缺失,这些数字没有按时间顺序排序(它们被重新洗牌):
array = [16, 11, 4, 6, 14, 8, 5, 13, 10, 2, 9, 15, 3, 18, 20, 12, 19, 7, 1]
我想到的方法是:
for x in range(1, len(array) + 1):
if x not in array:
print(x)
这种方法的问题在于速度慢且效率低,如果我需要分析一个非常大的数组(有数千个数字),则需要很长时间。
答案 0 :(得分:3)
您可以找到set.difference
>>> set(range(1, 21)).difference(array)
{17}