python列表的若干種拼接

放浪の雲發表於2020-11-24

資料準備

a = ['a','b','c']
b = ['1','2','3']

1、頭尾拼接

1.1、別問,問就是+

 a + b
 # ['a', 'b', 'c', '1', '2', '3']

1.2、extend函式——有,為什麼不用呢

a.extend(b)
print(a)
# ['a', 'b', 'c', '1', '2', '3']

1.3、索引賦值——想加哪裡加哪裡

a[len(a):] = b
print(a)
# ['a', 'b', 'c', '1', '2', '3']

a[1:] =b
print(a)
# ['a', '1', '2', '3']

2、嵌入式拼接

2.1、append函式——列表也是物件

a.append(b)
print(a)
# ['a', 'b', 'c', ['1', '2', '3']]

3、一一對應拼接

如果是數字的話,就是一一對照計算

3.1、來個for迴圈吧

c = []
for i in range(len(a)):
  c.append(a[i]+' '+b[i])
print(c)
# ['a 1', 'b 2', 'c 3']

3.2、for迴圈多麻煩,一行搞定——其實也是for迴圈

[a[i]+' '+b[i] for i in range(len(a))]
# ['a 1', 'b 2', 'c 3']

3.3、zip函式——壓縮之後還要解壓縮

list(zip(a,b))
# [('a', '1'), ('b', '2'), ('c', '3')]

4、交叉融合

4.1、insert函式——迴圈定點插入

for i in range(1, len(a)+1):
  a.insert(i*2-1, b[i-1])
print(a)
# ['a', '1', 'b', '2', 'c', '3']

# also
[a.insert(i*2-1, b[i-1]) for i in range(1, len(a)+1)]
# [None, None, None]
print(a)
# ['a', '1', 'b', '2', 'c', '3']

4.2、不想算的太麻煩——還是for迴圈

c = [[a[i],b[i]] for i in range(len(a))]
print(c)
# [['a', '1'], ['b', '2'], ['c', '3']]
[c[0].extend(c[i]) for i in range(1,len(c))][0]
print(c[0])
# ['a', '1', 'b', '2', 'c', '3']

相關文章