python list中append与extend方法示例总结
作者:一直不明飞行
在Python中list.extend()和list.append()都是用于操作列表的方法,这篇文章主要介绍了python list中append与extend方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
1. 基本定义
append()方法
作用:在列表末尾添加单个元素
语法:
list.append(element)特点:无论添加什么,都作为一个整体元素加入
extend()方法
作用:在列表末尾添加多个元素
语法:
list.extend(iterable)特点:将可迭代对象中的元素逐个加入
2. 基础用法对比
python
# 基础示例
fruits = ['apple', 'banana']
# append 用法
fruits.append('orange')
print(fruits) # ['apple', 'banana', 'orange']
# extend 用法
fruits.extend(['grape', 'mango'])
print(fruits) # ['apple', 'banana', 'orange', 'grape', 'mango']3. 核心区别详解
情况1:添加列表时的区别
python
list1 = [1, 2, 3] list2 = [4, 5, 6] # append - 将整个list2作为一个元素添加 list1.append(list2) print(list1) # [1, 2, 3, [4, 5, 6]] - 嵌套列表! # extend - 将list2中的元素逐个添加 list1 = [1, 2, 3] # 重新初始化 list1.extend(list2) print(list1) # [1, 2, 3, 4, 5, 6] - 扁平列表
情况2:添加字符串时的区别
python
words = ['hello']
# append - 整个字符串作为一个元素
words.append('world')
print(words) # ['hello', 'world']
# extend - 字符串被拆分为字符
words = ['hello'] # 重新初始化
words.extend('world')
print(words) # ['hello', 'w', 'o', 'r', 'l', 'd']情况3:添加元组时的区别
python
numbers = [1, 2] # append - 整个元组作为一个元素 numbers.append((3, 4)) print(numbers) # [1, 2, (3, 4)] # extend - 元组元素逐个添加 numbers = [1, 2] # 重新初始化 numbers.extend((3, 4)) print(numbers) # [1, 2, 3, 4]
情况4:添加字典时的区别
# append 添加整个字典
my_list.append({'a': 1, 'b': 2})
print(my_list) # ['start', {'a': 1, 'b': 2}]
# extend 添加字典的键
my_list = ['start'] # 重新初始化
my_list.extend({'a': 1, 'b': 2})
print(my_list) # ['start', 'a', 'b']实际应用场景
场景1:树形结构处理
python
class TreeNode:
def get_all_nodes(self):
"""获取所有节点"""
all_nodes = [self] # 先添加自己
# 对于每个子节点,递归获取其所有节点并扩展
for child in self.children:
all_nodes.extend(child.get_all_nodes()) # 正确:扁平化添加
# 如果错误使用append:
# for child in self.children:
# all_nodes.append(child.get_all_nodes()) # 错误:产生嵌套列表
return all_nodes场景2:数据合并
python
# 合并多个数据源
def merge_data_sources(*sources):
merged_data = []
for source in sources:
if isinstance(source, list):
merged_data.extend(source) # 合并列表
else:
merged_data.append(source) # 添加单个元素
return merged_data
# 使用示例
result = merge_data_sources(
[1, 2, 3],
'hello',
(4, 5),
[6, 7]
)
print(result) # [1, 2, 3, 'hello', (4, 5), 6, 7]
与其他方法的对比python
# 与 + 运算符对比 list1 = [1, 2, 3] list2 = [4, 5, 6] # extend - 原地修改 list1.extend(list2) print(list1) # [1, 2, 3, 4, 5, 6] # + 运算符 - 创建新列表 list1 = [1, 2, 3] new_list = list1 + list2 print(new_list) # [1, 2, 3, 4, 5, 6] print(list1) # [1, 2, 3] - 原列表不变
总结对比表
| 特性 | append() | extend() |
|---|---|---|
| 参数 | 单个元素 | 可迭代对象 |
| 结果 | 添加整个对象作为元素 | 添加可迭代对象中的每个元素 |
| 内存 | 较少修改 | 可能涉及更多内存操作 |
| 性能 | O(1) | O(k),k为可迭代对象长度 |
| 适用场景 | 添加单个元素 | 合并多个元素 |
| 返回值 | None(原地修改) | None(原地修改) |
| 嵌套处理 | 可能产生嵌套 | 保持扁平结构 |
选择指南
使用 append() 当:
添加单个元素
元素本身需要保持完整结构
不确定元素类型时
使用 extend() 当:
合并多个元素
需要扁平化结构时
处理已知的可迭代对象
到此这篇关于python list中append与extend方法的文章就介绍到这了,更多相关python list中append与extend方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
