Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何使用reduce()访问元组元素?_Python_List Manipulation - Fatal编程技术网

在Python中,如何使用reduce()访问元组元素?

在Python中,如何使用reduce()访问元组元素?,python,list-manipulation,Python,List Manipulation,我想把下面的元组列表中的数字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)

我想把下面的元组列表中的数字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)
,然后使用
[1]
只获取
6

如果这看起来很难看,那是因为
reduce
不是一个很好的工具<代码>求和与生成器表达式配合使用效果更好:

sum(x[1] for x in [('a',1),('b',2),('c',3)])

您正在尝试添加元组列表。因此,您的
lambda
必须返回一个元组(否则,您将如何将一个调用的结果添加到下一项?),并且您还必须使用一个元组起始值。类似这样的工作原理:

reduce(lambda (x,y),(z,t): (0, y+t),[('a',1),('b',2),('c',3)], (0,0))[1]
您将得到一个元组
(0,6)
,然后使用
[1]
只获取
6

如果这看起来很难看,那是因为
reduce
不是一个很好的工具<代码>求和与生成器表达式配合使用效果更好:

sum(x[1] for x in [('a',1),('b',2),('c',3)])

您正在尝试添加元组列表。因此,您的
lambda
必须返回一个元组(否则,您将如何将一个调用的结果添加到下一项?),并且您还必须使用一个元组起始值。类似这样的工作原理:

reduce(lambda (x,y),(z,t): (0, y+t),[('a',1),('b',2),('c',3)], (0,0))[1]
您将得到一个元组
(0,6)
,然后使用
[1]
只获取
6

如果这看起来很难看,那是因为
reduce
不是一个很好的工具<代码>求和与生成器表达式配合使用效果更好:

sum(x[1] for x in [('a',1),('b',2),('c',3)])

您正在尝试添加元组列表。因此,您的
lambda
必须返回一个元组(否则,您将如何将一个调用的结果添加到下一项?),并且您还必须使用一个元组起始值。类似这样的工作原理:

reduce(lambda (x,y),(z,t): (0, y+t),[('a',1),('b',2),('c',3)], (0,0))[1]
您将得到一个元组
(0,6)
,然后使用
[1]
只获取
6

如果这看起来很难看,那是因为
reduce
不是一个很好的工具<代码>求和与生成器表达式配合使用效果更好:

sum(x[1] for x in [('a',1),('b',2),('c',3)])