从数字列表中获取下一个号码

时间:2017-10-28 12:05:17

标签: python python-3.x list numbers

我有一个从0到x的数字列表(比如说list_num = [])。它可能不包含0和x之间的所有数字(即跳过说4和7),但我不知道。

我想从列表中获取第一个丢失的号码,或者如果没有丢失,我希望得到下一个号码(例如:len(list_num)< - no +1,因为列表从0开始)。

我尝试了thisthis,但它们都略有不同

我该怎么做这个Python 3?我不介意使用一些API。

2 个答案:

答案 0 :(得分:2)

获取符合条件的第一项。如果没有,则需要x+1

try:
    first_value = next(val for val in range(x) if val not in list_sum)
except StopIteration:
    first_value = x+1

答案 1 :(得分:1)

你可以使用套装:

>>> lst = set([1,2,3,4,5,9,11,14])
>>> set(range(0, max(lst))).difference(lst)
{0, 6, 7, 8, 10, 12, 13}

或列表推导:

>>> lst = set([1,2,3,4,5,9,11,14])
>>> allNumbers = list(range(0, max(lst)))
>>> [x for x in allNumbers if x not in lst]
[0, 6, 7, 8, 10, 12, 13]