Python3 - 6种方法拼接合并列表(list)

Python3 - 6种方法拼接合并列表(list)

Python 中合并列表是非常常见的操作,本文提供6种方法实现列表的拼接:

  1. 通过 + 运算直接拼接
  2. 通过循环调用list.append()进行拼接
  3. 通过列表表达式拼接
  4. 通过 ‘*’ 解构方式实现拼接
  5. 通过内置的extend方法实现拼接
  6. 通过itertools.chain()实现拼接

下面对每种方法进行说明。

1. 通过 + 运算直接拼接

1
2
3
4
5
6
7
8
9
# 初始化列表
list1 = [0, 1, 2]
list2 = [3,4, 5,]
list3 = [6, 7, 8, 9]

# 1. 通过 + 运算直接拼接
print('# 1. 通过 + 运算直接拼接')
result = list1 + list2 + list3
print(result)

控制台输出

1
2
# 1. 通过 + 运算直接拼接
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 通过循环调用list.append()拼接

1
2
3
4
5
6
7
8
9
print('# 2. 通过循环调用list.append()拼接')
result = []
for element in list1:
    result.append(element)

for element in list2:
    result.append(element)

print(result)

控制台输出

1
2
# 2. 通过循环调用list.append()拼接
[0, 1, 2, 3, 4, 5]

3. 通过列表表达式拼接

1
2
3
4
print('# 3. 通过列表表达式拼接')
result = [element for lis in [list1, list2 , list3] for element in lis]

print(result)

控制台输出

1
2
# 3. 通过列表表达式拼接
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

4. 通过 ‘*’ 解构方式实现拼接

1
2
3
4
5
print('4. 通过 '*' 解构方式实现拼接')
result = [*list1, *list2]

print(result)

控制台输出

1
2
# 4. 通过 '*' 解构方式实现拼接
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

5. 通过内置的extend方法实现拼接

1
2
3
4
5
6
7
print('# 5.通过内置的extend方法实现拼接')
result = []
result.extend(list1) # list_one contains all the elements
result.extend(list2)
result.extend(list3)

print(result)

控制台输出

1
2
# 4. 通过 '*' 解构方式实现拼接
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

6. 通过itertools.chain()实现拼接

1
2
3
4
5
print('# 6. 通过itertools.chain()实现拼接')
import itertools

result = list(itertools.chain(list2, list2, list3))
print(result)

控制台输出

1
2
# 6. 通过itertools.chain()实现拼接'
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

小结

以上六种方法各有优劣,从效率角度看,直接使用操作符’+’‘*’的方式效率最好,但此种方式不适合做大数据处理。如果需要做一定列表元素处理,然后再合并,可以采用23两种方式。如果数据量很大,都存在外部存储器或数据库里,采用6的方式更加合适。 如果需要修改原始列表,则可以使用5中的extend方式。

Rating: