首页 > 代码库 > [Python]解决python链式extend的技巧
[Python]解决python链式extend的技巧
众所周知python中的list是可以extend的,功能 旨在将两个list合并成一个。譬如[1,2,3].extend([4,5,6])=[1,2,3,4,5,6]
假如有一个list的list,我想把他们reduce成一个list,如何操作?懂点函数式编程的人就会想到用reduce,但是直接reduce(lambda x,y:x.extend(y), lists)是不行的,原因是Python的list类中原始实现不允许链式extend。
我的解决方法是继承list类添加链式的extend操作。
1 class ListWithLinkExtend(list): 2 def extend(self, value): 3 super(ListWithLinkExtend, self).extend(value) 4 return self
这样就可以链式extend,对于list的list就很轻松地reduce了。
1 x = [[1,2,3], [4,5,6], [7,8,9]] 2 list(reduce(lambda a, b: ListWithLinkExtend(a).extend(ListWithLinkExtend(b)), x))
[Python]解决python链式extend的技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。