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

 更新时间:2026年03月03日 09:46:38   作者:一直不明飞行  
在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方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中random函数的用法整理大全

    Python中random函数的用法整理大全

    random库是使用随机数的Python标准库,random库主要用于生成随机数,下面这篇文章主要给大家介绍了关于Python random函数用法的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Python文件与文件夹常见基本操作总结

    Python文件与文件夹常见基本操作总结

    这篇文章主要介绍了Python文件与文件夹常见基本操作,结合实例形式总结分析了Python针对文件与文件夹操作所涉及的常见函数与方法的使用技巧,需要的朋友可以参考下
    2016-09-09
  • Python二进制转十进制的常见实现方法

    Python二进制转十进制的常见实现方法

    这篇文章详细介绍了在Python中将二进制转换为十进制的多种方法,包括使用内置的int()函数、手动按位计算、使用math.pow()辅助计算、通过位运算等,文章还讨论了这些方法的性能差异,需要的朋友可以参考下
    2026-01-01
  • Python实现批量翻译CAD图纸

    Python实现批量翻译CAD图纸

    这篇文章主要为大家详细介绍了如何通过Python实现批量翻译CAD图纸,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以学习一下
    2023-12-12
  • 利用Python list列表修改元素

    利用Python list列表修改元素

    这篇文章主要介绍了利用Python list列表修改元素,Python 提供了两种修改列表(list)元素的方法,我们可以每次修改单个元素,也可以每次修改一组元素
    2022-06-06
  • 深入剖析Python的爬虫框架Scrapy的结构与运作流程

    深入剖析Python的爬虫框架Scrapy的结构与运作流程

    这篇文章主要介绍了Python的爬虫框架Scrapy的结构与运作流程,并以一个实际的项目来讲解Scrapy的原理机制,十分推荐!需要的朋友可以参考下
    2016-01-01
  • Python应用案例之利用opencv实现图像匹配

    Python应用案例之利用opencv实现图像匹配

    OpenCV 是一个的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上,这篇文章主要给大家介绍了关于Python应用案例之利用opencv实现图像匹配的相关资料,需要的朋友可以参考下
    2024-08-08
  • Python实现列表索引批量删除的5种方法

    Python实现列表索引批量删除的5种方法

    这篇文章主要介绍了Python实现列表索引批量删除的5种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Django和Ueditor自定义存储上传文件的文件名

    Django和Ueditor自定义存储上传文件的文件名

    这篇文章主要介绍了Django和Ueditor自定义存储上传文件的文件名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用DrissionPage控制360浏览器的完美解决方案

    使用DrissionPage控制360浏览器的完美解决方案

    在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接调用本地360浏览器的用户数据,实现无缝自动化控制,需要的朋友可以参考下
    2025-03-03

最新评论