2013-05-03 131 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