用列表推导的方式实现多个列表合并!!!

来源:互联网 发布:微信群淘宝优惠券提成 编辑:程序博客网 时间:2024/05/22 13:15

问题缘由

在使用@装饰器的时候,我遇到了一个函数传参的问题,我想把*args里面的list进行合并,而且我想通过列表推导来解决这个问题。查询了一下网上,没有人用这种方法解决。只知道可以通过c=a+b或者extend的方式。因为受到了列表推导双for的误导,我一直考虑通过两个for循环的列表嵌套来解决这个问题。后来发现,列表推导完全可以实现对外部变量的修改。

下面是一个举例

a = [1,2,3,3,5,6]b = [2,3,34,5,6]c = [3,"m",'jk']m = [a,b,c]#这个m其实就相当于*args,这样就可以把所有传入的参数进行合并操作。h =[]#这里用于存储listk = [h.extend(i) for i in m ]#完成列表合并的操作l = "".join([str(i) for i in h])#把列表转换成字符串,为什么要再用一次列表推导呢?# 原因是如果是整数的话,是会报错的。原因见上一篇。print(l)print(h)

最大的收获就是,列表推导可以对外部的变量进行操作,

尽管打印k的值我们会发现k是三个none,但是这不影响我们获取列表合并后的结果。

如果你有更多的关于列表推导的心得,经验,望不吝赐教

原创粉丝点击