[英]In Python how to access elements of tuples using reduce()?
我想將下面的元組列表中的數字1,2,3加在一起。 我試過了:
reduce(lambda (x,y),(z,t): y+t,[('a',1),('b',2),('c',3)])
我收到一個錯誤:
TypeError: 'int' object is not iterable
如何解決此錯誤? 謝謝
您正在嘗試添加元組列表。 因此,您的lambda
必須返回一個元組(否則,如何將一個調用的結果添加到下一項?),並且還必須使用一個作為元組的起始值。 像這樣的作品:
reduce(lambda (x,y),(z,t): (0, y+t),[('a',1),('b',2),('c',3)], (0,0))[1]
最后得到一個元組(0, 6)
0,6 (0, 6)
,然后使用[1]
來得到6
。
如果看起來很丑,那是因為reduce
並不是一個很好的工具。 用生成器表達式sum
效果更好:
sum(x[1] for x in [('a',1),('b',2),('c',3)])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.