选择迭代列表切片python的某些项目

时间:2013-06-21 12:15:39

标签: python

我有一个清单

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

我想从列表中选择符合以下条件的索引:

1)元素之和等于3

2)上述总和的答案未出现在列表中

到目前为止我想到的方法是:用上面列表的总和创建一个新的列表,counterum,并获取那些满足条件等于3的索引,idx,然后:< / p>

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

所以idx [0]应该包含满足和条件的原始列表中第一个元素的索引,

然而,这给了我错误,我不明白为什么!

TypeError: argument of type 'int' is not iterable

任何帮助都非常感谢!!

1 个答案:

答案 0 :(得分: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

你不能遍历整数,因此错误。