簡體   English   中英

在Python中如何使用reduce()訪問元組的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM