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

问题描述:

我有一个从0到x的数字列表(假设为list_num = [])。它可能不包含0和x之间的所有数字(即跳过4和7),但我不知道。从数字列表中获取下一个数字

我想从列表中得到第一个缺失的数字,如果没有缺失,我想在得到下一个数字后(类似于:len(list_num) < - no +1,因为列表从0开始)。

我试图thisthis,但他们都略有不同

我如何能做到这一点的Python 3?我不介意使用一些API。

+0

我能问为什么这是downvoted? – Sank6

+1

你没有努力。显示你已经尝试了什么,以及你卡在哪里。 – JJJ

+0

这可以使用简单的'for'循环完成。付出一些努力? – aaron

获取与条件匹配的第一个项目。如果没有,你需要x+1

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

谢谢。这很简单和简短 – Sank6

您可以用集可以:

>>> 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]