我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 列表 append()函数使用详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 列表 append()函数使用详解

「作者主页」:士别三日wyx

append函数详解

1. 基本使用

append() 函数可以向列表末尾添加元素

语法

list.append( element )

参数

  • element:任何类型的元素

实例:向列表末尾添加一个元素

name_list = ['zhangsan', 'lisi', 'wangwu']name_list.append('zhaoliu')print(name_list)

输出:

['zhangsan', 'lisi', 'wangwu', 'zhaoliu']

需要注意的是, append() 函数添加的元素在列表的「末尾」而不是任意位置

2. 任意类型元素

append() 函数可以向列表末尾添加「任意类型」的元素

实例:添加普通类型(数值、字符串)元素

list1 = ['zhangsan', 'lisi', 'wangwu']list1.append(1)  # 添加整形print(list1)list1.append('str')  # 添加字符型print(list1)

输出:

['zhangsan', 'lisi', 'wangwu', 1]['zhangsan', 'lisi', 'wangwu', 1, 'str']

实例:添加集合类型(列表,元祖)元素

list1 = ['zhangsan']list1.append([1,2,3])  # 添加列表print(list1)list1.append((4,5,6))  # 添加元祖print(list1)

输出:

['zhangsan', [1, 2, 3]]['zhangsan', [1, 2, 3], (4, 5, 6)]

3. 列表同步

        使用 append() 函数添加列表时,是添加列表的「引用地址」而不是添加列表内容,当被添加的列表发生变化时,添加后的列表也会同步发生变化。

list1 = ['zhangsan']a = [1,2,3]list1.append(a)  # 列表list1添加列表aprint(list1)a.append(4)  # 列表a发生变化list1.append(a)print(list1)  # 列表list1也会同步变化

输出:

['zhangsan', [1, 2, 3]]['zhangsan', [1, 2, 3, 4], [1, 2, 3, 4]]

3.1 原理剖析

        从输出结果可以发现,当添加的列表发生变化时,先前添加的内容也发生了改变,这会使程序出现意料之外的问题,我们使用 id() 函数验证一下

list1 = ['zhangsan']a = [1,2,3]list1.append(a)print(a, id(a))  # 列表a的引用地址print(list1[1], id(list1[1]))  # 添加到列表后的引用地址

输出:

[1, 2, 3] 2992145244608[1, 2, 3] 2992145244608

3.2 解决方案

从输出结果可以看出,问题的原因就在引用地址上面。这里补充两个概念

  1. 浅拷贝:拷贝这个对象的引用地址
  2. 深拷贝:拷贝对象的内容

使用 copy.deepcopy() 函数深拷贝列表的内容而不是列表的引用地址

list1 = ['zhangsan']a = [1,2,3]list1.append(copy.deepcopy(a))print(a, id(a))  # 列表a的引用地址print(list1[1], id(list1[1]))  # 添加到列表后的引用地址

输出:

[1, 2, 3] 1963457096704[1, 2, 3] 1963458936640

由输出结果可以确定,添加后的列表不再引用源列表的地址
使用「深拷贝」添加列表的内容而不是引用地址,从而解决列表同步的问题

list1 = ['zhangsan']a = [1,2,3]list1.append(copy.deepcopy(a))  # 深拷贝列表aprint(list1)a.append(4)  # 列表a发生变化list1.append(copy.deepcopy(a))  # 深拷贝列表aprint(list1)  # 列表list1不再同步变化

输出:

['zhangsan', [1, 2, 3]]['zhangsan', [1, 2, 3], [1, 2, 3, 4]]

列表同步问题解决了

4. append()与extend()的区别

  1. append添加的是元素本身,而extend添加的是元素的值
  2. append可以添加所有类型元素,而extend只能添加序列

比如,添加列表时,append会添加整个列表,而extend只会添加列表中的值

list1 = ['zhangsan', 'lisi', 'wangwu']list2 = ['zhangsan', 'lisi', 'wangwu']list1.append([1,2,3])print('append添加整个列表:', list1)list2.extend([1,2,3])print('extend添加列表的值:', list2)

输出:

append添加整个列表: ['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]extend添加列表的值: ['zhangsan', 'lisi', 'wangwu', 1, 2, 3]

来源地址:https://blog.csdn.net/wangyuxiang946/article/details/122142534

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 列表 append()函数使用详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在python中​使用append函数扩展列表

这篇文章将为大家详细讲解有关怎么在python中使用append函数扩展列表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python主要用来做什么Python主要应用于:1、Web开发;2
2023-06-14

Python列表append()怎么使用

列表的 append() 方法用于在列表的末尾添加元素。它接受一个参数,即要添加的元素。下面是使用 append() 方法的语法:```pythonlist.append(element)```其中,list 是要操作的列表,element
2023-08-29

使用python append函数报错怎么解决

当使用Python的`append()`函数时,有以下几个常见的错误和解决方法:`AttributeError: 'NoneType' object has no attribute 'append'`: 这个错误意味着你正在尝试在一个`N
2023-10-27

python中append函数怎么使用

在Python中,append()方法用于在列表的末尾添加元素。它的语法如下:列表名称.append(要添加的元素)下面是一个例子,展示了如何使用append()方法向列表中添加元素:```pythonfruits = ['apple',
2023-08-17

Python之列表append()方法使用实例代码分析

这篇文章主要介绍“Python之列表append()方法使用实例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python之列表append()方法使用实例代码分析”文章能帮助大家解决问题。
2023-07-04

Python列表常用函数怎么使用

这篇文章主要介绍“Python列表常用函数怎么使用”,在日常操作中,相信很多人在Python列表常用函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python列表常用函数怎么使用”的疑惑有所帮助!
2023-06-22

Python函数的参数列表解析

这篇文章主要介绍了Python函数的参数列表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-19

python列表中remove()函数的使用方法

python列表中remove()函数的使用方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 基本使用remove() 函数可以删除列表中的指定元素语法list.re
2023-06-22

使用Python的reverse()函数反转列表

使用Python的reverse()函数反转列表,需要具体代码示例在Python中,我们经常需要在编程中对列表进行操作,其中反转列表是常见的一种需求,这时候我们可以使用Python内置的reverse()函数来实现。reverse()函数的
使用Python的reverse()函数反转列表
2023-11-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录