当前位置: 代码网 > it编程>前端脚本>Python > python list中append与extend方法示例总结

python list中append与extend方法示例总结

2026年03月03日 Python 我要评论
1. 基本定义append()方法作用:在列表末尾添加单个元素语法:list.append(element)特点:无论添加什么,都作为一个整体元素加入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方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com