返回顶部
首页 > 资讯 > 后端开发 > Python >Python之列表的append()方法最容易踩的坑
  • 751
分享到

Python之列表的append()方法最容易踩的坑

2024-04-02 19:04:59 751人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录python列表的append()方法踩坑Python列表的append函数append的功能append的用法append的注意事项实战Python列表的append()方法踩

Python列表的append()方法踩坑

在这之前,我一直认为append()只是个将一个对象添加到列表尾部的方法,但是今天之后,我对它有了一个新的认识。

一般情况下,我们都是这样使用:

list = [1,2,3]
list.append(4)
# list列表就变成了[1,2,3,4]

但是在后来的使用中,遇到了像下面这样的问题:

a = [1,2]
b = []

b.append(a)
print(b)

a.append(3)
print(b)
# 此时b的结果为[[1,2,3]]
# 是的,你没看错,就是[[1,2,3]]

​明明两次打印之间没有对b进行任何操作,那么b为什么会发生变化,问题肯定是出在了append方法上。

通过一系列的资料查询,发现append方法是浅拷贝方法,什么是浅拷贝呢?

官方一点的解释就是:

在Python中,对象赋值实际上是对象的引用,当创建一个对象,然后把它赋值给另一个变量的时候,Python并没有拷贝这个对象,而只是拷贝了这个对象的引用,这就是浅拷贝。

什么,你说你还没懂浅拷贝?没关系,下面还有:

a = 1
b = 1

print(id(a))
print(id(b))
# 此时你会发现,a和b在内存中的地址居然是一样的

​因为在Python中,先是生成了对象,然后才是变量对对象的引用。比如,1是一个对象,然后a和b再分别对1进行引用,由于常数是不可变类型,所以1的内存空间是一样的,所以a和b共用一块内存空间。

形象的来解释就是:

有一个盒子,盒子里面放着1,然后a和b对1进行引用的时候就是直接把a和b的标签贴到这个盒子上。

回归正题:

a = [1,2]
b = []

b.append(a)
print(b)

a.append(3)
print(b)
# 开始时a这个盒子等于[1,2],b这个盒子等于[]
# 使用b.append(a)相当于将盒子a放入盒子b中
# 所以再使用a.append(3)的时候,b也会跟着一起改变呀!!!

Python列表的append函数

append的功能

将一个元素添加到当前列表中

append的用法

用法:list.append(new_item)

参数:new_item:添加进列表的新的元素(成员)

In [19]: names = ['insane']
In [20]: names.append('loafer')
In [21]: print(names)
['insane', 'loafer']

append的注意事项

  • 被添加的元素只会被添加到末尾变量
  • append函数是在原有列表的基础上添加,不需要额外添加新的变量

实战

每次只能添加一个变量

# coding:utf-8

books = []
print(id(books))
books.append('python')
print(books)
print(id(books))

number = 1.1
tuple_test = (1,)
dict_test = {'name': 'insane'}

books.append(number)  # 每次只能加入一个变量
books.append(tuple_test)
books.append(dict_test)
print(books)

books.append('Django')
books.append(1)
print(books)
print(id(books))

2029563540224
['python']
2029563540224
['python', 1.1, (1,), {'name': 'insane'}]
['python', 1.1, (1,), {'name': 'insane'}, 'djanGo', 1]
2029563540224

Process finished with exit code 0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Python之列表的append()方法最容易踩的坑

本文链接: https://lsjlt.com/news/120897.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python之列表的append()方法最容易踩的坑
    目录Python列表的append()方法踩坑Python列表的append函数append的功能append的用法append的注意事项实战Python列表的append()方法踩...
    99+
    2024-04-02
  • Python list append方法之给列表追加元素
    目录Python list append方法给列表追加元素描述语法举例注意事项给列表list中元素添加的四种方式1. append()2. extend() 3....
    99+
    2024-04-02
  • Python之列表append()方法使用实例代码分析
    这篇文章主要介绍“Python之列表append()方法使用实例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python之列表append()方法使用实例代码分析”文章能帮助大家解决问题。...
    99+
    2023-07-04
  • 总结elementUI表单验证的踩坑解决方法
    @charset "UTF-8";.markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;...
    99+
    2023-05-14
    elementUI 前端 JavaScript
  • Java必踩的坑之方法中形参、实参传递
    首先亮明Java中方法参数传递的规则,这两点很重要: 如果实参是基本类型(包括包装类型)或者String,则实参不会变(传的是值);如果实参是对象集合或者数组,则实参会改变(传的是引...
    99+
    2024-04-02
  • python中列表添加元素的几种方式(+、append()、extend())
    目录1、使用+加号2、使用append()方法3、使用extend()方法4、难点1、使用+加号 +加号是将两个list列表相加,返回一个新的列表对象,会消耗额外的内存。 #!/us...
    99+
    2024-04-02
  • python列表过滤的方法
    在python中,对列表这样的数据结构进行过滤,提取自己需要的元素,组成新的列表,是很常见的操作,这就要自然而然的用到列表过滤了,而常用的过滤当然就是循环后通过if进行,但是这样子,显然就是代码的开支有些大。python中,提供了一个列表...
    99+
    2023-01-31
    方法 列表 python
  • 用python修改excel表某一列内容的操作方法
    想想你在一家公司里做表格,现在有一个下面这样的excel表摆在你面前,这是一个员工每个月工资的表, 现在假设,你要做的事情,是填充好后面几个月每个员工的编号,并且给员工随机生成一个...
    99+
    2024-04-02
  • python列表的构造方法list()
    前言: 在很多语言中都有这种情况,需要把一组数集中存储起来方便后面的使用,而且还要求这组数能够随意的去查询,取出,排序,删除等等。这里大家可能想到了数组这个概念,也就是其他语言中的a...
    99+
    2024-04-02
  • Python列表的方法有哪些
    这篇文章主要介绍“Python列表的方法有哪些”,在日常操作中,相信很多人在Python列表的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python列表的方法有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-16
  • Python的列表方法有哪些
    本文小编为大家详细介绍“Python的列表方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python的列表方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。列表更多的方法index():返回指定...
    99+
    2023-06-29
  • 在Python中反转列表的方法
    这篇文章主要为大家展示了“在Python中反转列表的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Python中反转列表的方法”这篇文章吧。列表反转在Py...
    99+
    2024-04-02
  • 在Python中比较列表的方法
    这篇文章将为大家详细讲解有关在Python中比较列表的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。比较列表在Python中,我们可以对list取交集、差集来比较两个...
    99+
    2024-04-02
  • python 合并列表的八种方法
    目录1. 最直观的相加 2. 借助 itertools 3. 使用 * 解包4. 使用 extend 5. 使用列表推导式 6. 使用 heapq 7. 借助魔法方法 8. 使用 y...
    99+
    2024-04-02
  • Python修改列表元素的方法
    本篇文章和大家了解一下Python修改列表元素的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录一、修改单个元素二、修改一组元素补充: 删除元素的变相方法总结 增删改查是处理数据最常见的方法,前两种说过了...
    99+
    2023-07-06
  • python列表降序排列的方法是什么
    Python列表的降序排列有多种方法,以下是其中几种常见的方法:1. 使用`sorted()`函数:```my_list = [4,...
    99+
    2023-08-19
    python
  • 微信小程序Echarts动态使用及图表层级踩坑解决的方法
    本篇内容介绍了“微信小程序Echarts动态使用及图表层级踩坑解决的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!介绍一下Echarts...
    99+
    2023-07-05
  • 从numpy数组到列表:简单易懂的转换方法
    在数据科学和机器学习中,使用numpy库的ndarray(多维数组)是必不可少的。然而,有时我们需要将这些数组转换为Python列表进行进一步处理。本文将提供简单易懂的numpy数组到列表的转换方法,同时提供具体的代码示例。 1...
    99+
    2024-01-19
    列表 Numpy 数组
  • Dedecms频道,列表页,内容页中调用全站最新文章的方法
    本文实例讲述了Dedecms频道,列表页,内容页中调用全站最新文章的方法。分享给大家供大家参考。具体分析如下: 使用dedecms的朋友如果想在网站任何地方调用全站最新文章的话有很多方法,下面我举例是Dedecms频道,...
    99+
    2022-06-12
    Dedecms 频道 列表页 内容页 调用 全站 最新文章 方法
  • phpcms调用全站最新文章列表的方法
    phpcms调用全站最新文章需要修改文件:\phpcms\modules\content\classes\content_tag.class.php,找到以下函数:复制代码代码如下: public functio...
    99+
    2022-06-12
    phpcms 文章列表
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作