如何在 Python 中合并两个列表(连接和扩展)
了解在 Python 中合并和组合两个列表的最佳方法。比较加号运算符、扩展方法、列表解包和链选项。
概述
在聚合结果、处理批量数据或将项目附加到集合时,组合列表数据集是一种常见操作。 Python 提供了多种合并列表的方法,具体取决于您是要就地修改列表还是创建新列表。
要通过组合两个现有列表来创建全新列表,最直接的方法是使用串联运算符“+”(例如“list3 = list1 + list2”)。或者,在Python 3.5+ 中,您可以使用列表解包语法 `[*list1, *list2]`,它具有很强的表达能力,允许您轻松地在列表创建中的任何位置注入附加元素。
如果您想通过添加另一个列表中的元素来就地修改现有列表,“.extend()”方法是最有效的选择。这避免了为新列表分配内存并直接修改目标列表。为了节省内存地遍历合并列表而不在内存中复制数据,您可以使用“itertools.chain()”。
代码和执行输出
该脚本演示了如何使用运算符、扩展和解包技术合并两个列表。
merge_lists.py
在编辑器中尝试list_a = [1, 2, 3]
list_b = [4, 5, 6]
# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)
# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)
# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)端子输出
Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]逐步实施
- 使用 + 运算符合并列表并返回新的组合列表。
- 调用list_a.extend(list_b)将list_b的所有元素直接追加到list_a中。
- 使用星号解包运算符 [*list_a, *list_b] 从两者的元素构造一个列表。
常见问题解答
追加()和扩展()有什么区别?
append() 将整个列表参数添加为单个嵌套元素,而extend() 解包列表参数并单独添加每个元素。
如何在删除重复项的同时合并列表?
您可以合并它们,然后将结果转换为集合,或者先将它们转换为集合:list(set(list_a) | set(list_b))。
相关主题
推荐的 Python 资源
通过相关的交互式教程、备忘单和代码比较来扩展您的知识。