在 Python 中,如果想要合并两个列表,常用的有以下 3 种方式。
- 使用 “+” 运算符。
- 使用 extend() 方法。
- 使用解包。
使用 “+” 合并列表
在 Python 中,合并列表最简单的方式,就是使用 “+” 运算符,也就是使用列表相加的语法。
示例 1:使用 “+” 运算符
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
result = nums1 + nums2
print(result)运行结果如下。
[1, 2, 3, 4, 5, 6]分析:
使用 “+” 运算符不会修改原列表,如果你希望修改原列表,可以考虑使用 “+=” 运算符。比如:
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
nums1 += nums2
print(nums1)使用 extend() 合并列表
在 Python 中,使用 extend() 方法合并列表时,它会修改原列表。
示例 2:使用 extend() 方法
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
nums1.extend(nums2)
print(nums1)运行结果如下。
[1, 2, 3, 4, 5, 6]使用解包合并列表
在 Python 中,我们还可以使用 “*” 解包的方式来合并两个或多个列表。
示例 3:合并两个列表
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
result = [*nums1, *nums2]
print(result)运行结果如下:
[1, 2, 3, 4, 5, 6]分析:
首先小伙伴们要知道,*nums1 就是对 nums1 进行解包,此时拿到的是 “1,2,3”,这是一串不包含中括号的特殊数据。然后 *nums2 拿到的是 “4,5,6”,这也是一串不包含中括号的特殊数据。而 [*nums1,*nums2] 其实就是把这两串数据塞到 “[]” 里面去进行 “组装”,这样就构建成了一个新的列表,分析如下图所示。

一定要注意,*nums1 和 *nums2 得到的结果是一串以逗号隔开的数据。但这种类型的数据并不属于 Python 内置的任何一种数据结构,而是一种特殊的数据。
示例 4:合并多个列表
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
nums3 = [7, 8, 9]
result = [*nums1, *nums2, *nums3]
print(result)运行结果如下。
[1, 2, 3, 4, 5, 6, 7, 8, 9]分析:
合并多个列表,与合并两个列表,是同样的道理。都是把列表分别解包出来,然后再进行 “组装”。
