从数字列表中获取下一个数字
问题描述:
我有一个从0到x的数字列表(假设为list_num = []
)。它可能不包含0和x之间的所有数字(即跳过4和7),但我不知道。从数字列表中获取下一个数字
我想从列表中得到第一个缺失的数字,如果没有缺失,我想在得到下一个数字后(类似于:len(list_num)
< - no +1,因为列表从0开始)。
我如何能做到这一点的Python 3?我不介意使用一些API。
答
获取与条件匹配的第一个项目。如果没有,你需要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]
我能问为什么这是downvoted? – Sank6
你没有努力。显示你已经尝试了什么,以及你卡在哪里。 – JJJ
这可以使用简单的'for'循环完成。付出一些努力? – aaron