我正在尝试在任意列表中查找缺失的数字。在有序列表中,我的代码工作正常,但在任意列表中不起作用。这是我的代码:
a = [10,12,13,8]
b = [x for x in range(a[0], a[-1] + 1)]
a = set(a)
print(list(a ^ set(b)))
输出是:
[8, 10, 12, 13]
但是当 a 被排序时,输出结果很好:
[9,11]
我的代码有什么问题,我该如何解决?附言。我知道我可以对列表进行排序并解决问题,但我希望它也适用于任意列表。
请您参考如下方法:
这个怎么样:
a = [10, 12, 13, 8]
b = set(range(min(a), max(a)+1))
print(set(a).symmetric_difference(b))
