我有一个清单
[[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
任何帮助都非常感谢!!
答案 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
你不能遍历整数,因此错误。