2017-10-28 61 views
-3

我有一個從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

回答

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 
+0

謝謝。這很簡單和簡短 – Sank6

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]