2012-07-24 47 views
1

說我產生從0列表 - 10:查找號碼範圍的最低未被佔用的空間

range(10) 

然後,我有一個字典列表,這是這個樣子:

item = [{'position': 0}, {'position': 4}] 

如何獲得不在position範圍內的最低號碼?例如,如果我問下一個可用位置,它應該返回1;並且,有它添加到列表中,那麼2等,直到它擊中4,在這種情況下,它應該返回5.

回答

4
>>> item = [{'position': 0}, {'position': 4}] 
>>> min(set(range(10)) - set(x['position'] for x in item)) 
1 

你會發現所有的位置值(x['position'] for x in item)), 轉換這個列表設置,它。減去從0到最大的所有數字集合, ,然後在結果集合中找到最小值。

+0

令人驚歎的,謝謝。我嘗試過這樣的事情,但沒有設置,並沒有成功。接受約3分鐘。 – DMan 2012-07-24 04:17:28

+0

謝謝:)我很高興幫助你 – 2012-07-24 04:18:07