Python 选择在列表中迭代的某些项

Python 选择在列表中迭代的某些项,python,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,然后: selection=[n for n, x in list[idx[0]:] if sum not in x] 所以id

我有一张单子

[[0, 1], [1, 0], [0, 2], [1, 1], [2, 0], [0, 3], [1, 2], [2, 1], [3, 0]]
我想从列表中选择满足以下条件的索引:

1) 元素之和等于3

2) 上述金额的答案不在列表中

到目前为止,我所想的方法是:用上述列表的总和Counterum创建一个新列表,并取满足等于3条件的索引idx,然后:

  selection=[n for n, x in list[idx[0]:] if sum not in x] 
所以idx[0]应该包含原始列表中满足求和条件的第一个元素的索引

然而,这给了我错误,我不知道为什么

TypeError: argument of type 'int' is not iterable

非常感谢您的帮助

下面是一个简单的列表:

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

您不能遍历整数,因此会出现错误。

下面是一个简单的列表:

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

您不能遍历整数,因此会出现错误。

对不起,我在帖子中犯了一个错误,我在查找项目的索引,而不是项目的索引themselves@user1987097你所说的指数到底是什么意思?索引?在保持相同逻辑的情况下使用enumerate是的,这非常有效,但我仍然不明白为什么我最初的尝试不起作用。当然这意味着它应该从列表[idx[0]]开始,然后继续迭代?@user1987097否。for循环就是这样做的。它从一开始就逐个检查列表中的每个项目:pSorry在我的帖子中犯了一个错误,我在寻找项目的索引,而不是项目themselves@user1987097你所说的指数到底是什么意思?索引?在保持相同逻辑的情况下使用enumerate是的,这非常有效,但我仍然不明白为什么我最初的尝试不起作用。当然这意味着它应该从列表[idx[0]]开始,然后继续迭代?@user1987097否。for循环就是这样做的。它从一开始就逐个检查列表中的每个项目:不要忘记接受答案!别忘了接受答案!