我的数据结构如下
itemsData = [('data1', [1, 2, 3, 4]), ('data2', [1, 2]), ('data3', [1, 2, 3])]
我想在上面的元组列表中找到项目的总数。例如,len([1,2,3,4]+len([1,2])+len([1,2,3])=9
reduce(lambda x,y: len(x[1]) + len(y[1]), itemsData )
我得到的错误是
TypeError: 'int' object has no attribute '__getitem__'
Tags:
我会解释为什么你的代码不起作用
从https://docs.python.org/2/library/functions.html#reduce
所以在第一次迭代中,你的代码
len(x[1]) + len(y[1])
从x=('data1', [1, 2, 3, 4])
,y=('data2', [1, 2])
开始工作,结果是6
但是在第二次迭代中,会得到
x=6
,y=('data3', [1, 2, 3])]
, 所以len(x[1])
是无效的。你知道吗使用reduce的正确代码是
从那以后就开始工作了
你可以试试:
例如
相关问题 更多 >
编程相关推荐