我試圖將一堆列表中的元素配對在一起以創建最終對象,類似於創建一個對象的總和。我試圖在reduce
上使用一個簡單的變體,在這個變體中你考慮一個成對的列表而不是一個扁平列表來做到這一點。我想沿着線做一些事情:使用Python減少對的列表
nums = [1, 2, 3]
reduce(lambda x, y: x + y, nums)
除了我想更多的信息添加到特定於數字nums
列表中的每個元素的總和。例如,對於每一對(A,B)在列表中,運行的總和(A + B):
nums = [(1, 0), (2, 5), (3, 10)]
reduce(lambda x, y: (x[0]+x[1]) + (y[0]+y[1]), nums)
這不起作用:
>>> reduce(lambda x, y: (x[0]+x[1]) + (y[0]+y[1]), nums)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: 'int' object is unsubscriptable
爲什麼它不工作?我知道我可以編碼nums
作爲一個平面列表 - 這不是重點 - 我只是希望能夠創建一個reduce操作,可以遍歷一個對列表,或同時在同一長度的兩個列表上進行迭代,並從這兩個列表。謝謝。
你想要的減少是一個元組的結果呢? –
你是否必須使用reduce?我更喜歡簡單的 sum(x [0] + x [1] for x in nums) – cerealy