我正在尝试在任意列表中找到缺失的数字。在有序列表中,我的代码可以正常工作,但是在任意列表中,则不起作用。这是我的代码:

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/

10-11 06:21
查看更多