2013-05-03 63 views
0

我有这样的csv列表的列表:总结元素

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

我想要做的是和每个人名单,即创建一个由每个逗号的一个新的列表分离式可变相加,并检查它们是否等于某个值即:

检查[0 + 0,0 + 2,1 + 1,2 + 0 .....等于某个数量

我有得到:

if sum(gcounter)==3: 
    gamma=True 
    print(gamma) 
else: 
    pass 

我已尝试sum(int ...,并尝试在其他人中使用for循环,但每次尝试不同的方法时都会一直抛出相同的错误 TypeError:不支持的操作数类型为+:'int'和'列表' 所以它的总和功能的问题

试图解决这个问题已坦率地让我感到无精打采,将不胜感激任何帮助!

+1

这里有点不清楚你真的想在这里 – jamylak 2013-05-03 13:16:28

回答

6

你是否在寻找类似:

>>> lst = [[0, 0], [0, 2], [1, 1], [2, 0], [0, 3], [1, 2], [2, 1], [3, 0]] 
>>> print ([x for x in lst if sum(x) == 3]) 
[[0, 3], [1, 2], [2, 1], [3, 0]] 

基本上我遍历lst在同一时间得到一个子表。我总结子列表,如果它等于3,我将子列表保留在输出列表中。

+0

这是为2.73,虽然正确吗?我不得不明确地将'print'包装在parens中以使其工作于3.2 – 2013-05-03 13:16:16

+0

,这会引发相同的错误: TypeError:不支持的操作数类型为+:'int'和'list' – user124123 2013-05-03 13:17:03

+0

@HunterMcMillen - 是的,在python3上,'print'变成了一个函数。我将编辑,以便它们都可以工作。 – mgilson 2013-05-03 13:18:37