我正在尝试在任意列表中找到缺失的数字。在有序列表中,我的代码可以正常工作,但是在任意列表中,则不起作用。这是我的代码:
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]
我的代码有什么问题,我该如何解决? PS。我知道我可以对列表进行排序,并解决问题,但我也希望它能在任意列表上工作。
最佳答案
这个怎么样:
a = [10, 12, 13, 8]
b = set(range(min(a), max(a)+1))
print(set(a).symmetric_difference(b))
关于python - 如何在python 3中的任意列表中找到缺失的数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52354081/