想合并两个列表,交叉合并,同等长度的比较好处理,列表长度不一样长就麻烦点,网上找到一个方法:
1、python交叉合并两个长度不一样长的列表:
a = [1, 3, 5] b = [2, 4, 6, 8, 22, 656] c = [] for i in range(max(len(a), len(b))): if a: c.append(a.pop()) if b: c.append(b.pop()) print(c)
输出:[5, 656, 3, 22, 1, 8, 6, 4, 2]
还可以用列表表达式,目前还耐不活,我自己老老实实for循环了:
a = [1, 3, 5]
b = [2, 4, 6, 8]
a.reverse()
b.reverse()
c = [ ( lambda i: a.pop() if ( a! = [ ] and ( i % 2 ==0 or b==[ ] )) else b.pop() )( i ) for i in range( len( a ) + len( b ) )]
1、python交叉合并长度一样长的列表:
1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
3.+ 直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上
4.+= 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
list1 = [1,2,3]
list2 = [4,5,6]
list_new = []
for
item
in
list1:
list_new.append(item)
for
item
in
list2:
list_new.append(item)
print list_new
zip方法:
a = [1,2,3]
b = [4,5,6]
c = zip(a,b)
//c = [(1,4),(2,5),(3,6)]
list_new = [row[i]
for
i
in
range(len(0))
for
row
in
c]