8 Nov 2012

python tips: 列表展开

收藏到CSDN网摘
如果有一列表如下:
list1=[["a1","a2"],["b1","b2"],["c1","c2"],["d1","d2"]]
要展开外层列表,得到一个字符串列表形如:
['a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1', 'd2']
该怎么操作才最简单?

常规方法如下:
>>> a = []
>>> for c in list1:
 a.append(c[0])
 a.append(c[1])

 
>>> a
['a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1', 'd2']

当然,也可以使用reduce函数
reduce(lambda x,y:x+y,list1)
['a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1', 'd2']

有没有更简单的做法?可以使用带初始值的sum()函数,利用列表加法等于append()操作来简化:
>>> list1=[["a1","a2"],["b1","b2"],["c1","c2"],["d1","d2"]]
>>> sum(list1,[])
['a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1', 'd2']

No comments :

Post a Comment