2013-06-21 142 views
0

我有一個列表迭代選擇某些項目在列表片蟒蛇

[[0, 1], [1, 0], [0, 2], [1, 1], [2, 0], [0, 3], [1, 2], [2, 1], [3, 0]] 

我想選擇符合以下條件的列表索引:

1)元素的總和等於3

2)回答上述款項沒有出現在列表中

我曾經想過要做到這一點至今的方式:創建一個個的總和一個新的列表上述E列表,countersum,並採取指數,那些滿足的作爲條件等於3,並且然後IDX:

selection=[n for n, x in list[idx[0]:] if sum not in x] 

所以IDX [0]應該包含所述第一元素的索引在原list滿足總和條件,

但是,這給了我錯誤,我不知道爲什麼!

TypeError: argument of type 'int' is not iterable 

任何幫助極大讚賞!

+0

不要忘記接受答案! – TerryA

回答

3

這裏有一個簡單的列表理解:

>>> L = [[0, 1], [1, 0], [0, 2], [1, 1], [2, 0], [0, 3], [1, 2], [2, 1], [3, 0]] 
>>> [i for i, j in enumerate(L) if sum(j) == 3 and 3 not in j] 
[6, 7] 

如果我理解正確的話,你試圖做的是這樣的:

[n for n, x in an_integer] # an_integer being an integer because that is what list[idx[0]:] returned 

而且你無法通過整數循環,因此錯誤。

+0

對不起在我的帖子中犯了一個錯誤即時查找項目的索引,而不是項目本身 – user124123

+0

@ user1987097您指的是什麼意思?索引? – TerryA

+0

使用枚舉,同時保持相同的邏輯 –