扼杀"减少" python2.7中的行为

时间:2017-12-09 03:57:50

标签: python reduce

我正在编写一个程序来合并字典列表:

li = [{u'1234': [[1512734546591, 1512734552591]]}, {}, {}, {}]

reduce(lambda a, b: a.items() + b.items(), [l for l in li])

然后显示错误

AttributeError:' list'对象没有属性'项目'

为什么?

1 个答案:

答案 0 :(得分:2)

考虑第一次迭代a.items() + b.items()的结果。结果的类型是什么?结果在下一次迭代时传递到lambda a

这是一个list。在下一次迭代中,a将是list(上一个a.items() + b.items()的结果),b将是dict。此时,a.items()正在尝试访问items的{​​{1}}属性,其中没有list