广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python List的赋值方法是什么
  • 226
分享到

Python List的赋值方法是什么

2024-04-02 19:04:59 226人浏览 薄情痞子

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

摘要

这篇“python List的赋值方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“

这篇“python List的赋值方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python List的赋值方法是什么”文章吧。

Python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。

一、赋值

在python中,对象的赋值就是简单的对象引用,这点和c++不同。如下:

这种情况下,b和a是一样的,他们指向同一片内存,b不过是a的别名,是引用。我们可以使用a与b是否相同来判断,返回True,表明他们地址相同,内容相同。

赋值操作(包括对象作为参数、返回值)不会开辟新的内存空间,它只是复制了新对象的引用。也就是说,除了b这个名字以外,没有其它的内存开销。

修改了a,就影响了b;同理,修改了b就影响了a。

二、浅拷贝(shallow copy)

浅拷贝会创建新对象,其内容是原对象的引用。

浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数。比如对上述a:

1、切片操作:b = a[:] 或者 b = [each for each in a]

2、工厂函数:b = list(a)

3、copy函数:b = copy.copy(a)

浅拷贝产生的b不再是a了,使用is可以发现他们不是同一个对象,使用id查看,发现它们也不指向同一片内存。但是当我们使用 id(x) for x in a 和 id(x) for x in b 时,可以看到二者包含的元素的地址是相同的。

在这种情况下,a和b是不同的对象,修改b理论上不会影响a。比如b.append([4,5])。

但是要注意,浅拷贝之所以称为浅拷贝,是它仅仅只拷贝了一层,在a中有一个嵌套的list,如果我们修改了它,情况就不一样了。

a[4].append(“C”)。查看b,你将发现b也发生了变化。这是因为,你修改了嵌套的list。修改外层元素,会修改它的引用,让它们指向别的位置,修改嵌套列表中的元素,列表的地址并为发生变化,指向的都是同一个位置。

三、深拷贝(deep copy)

深拷贝只有一种形式,copy模块中的deepcopy函数。

和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。因而,它的时间和空间开销要高。

同样对la,若使用b = copy.deepcopy(a),再修改b将不会影响到a了。即使嵌套的列表具有更深的层次,也不会产生任何影响,因为深拷贝出来的对象根本就是一个全新的对象,不再与原来的对象有任何关联。

四、关于拷贝操作的警告

1、对于非容器类型,如数字,字符,以及其它“原子”类型,没有拷贝一说。产生的都是原对象的引用。

2、如果元组变量值包含原子类型对象,即使采用了深拷贝,也只能得到浅拷贝。

以上就是关于“Python List的赋值方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python List的赋值方法是什么

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python List的赋值方法是什么
    这篇“Python List的赋值方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2022-10-19
  • Python List的赋值方法
      Python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。 一、赋值         在python中,对象的赋值就是简单的对象引用,这点和C++不同。如下:    ...
    99+
    2023-01-31
    赋值 方法 Python
  • python字典赋值的方法是什么
    Python中的字典是一种无序的键值对集合,每个键值对之间用逗号分隔,整个字典用花括号{}括起来表示。字典中的键必须是唯一的,而值可...
    99+
    2023-05-13
    python字典赋值 python
  • python连续赋值的方法是什么
    Python中的连续赋值是一种将多个变量分别赋予相同或不同的值的方法。方法1:使用逗号分隔变量```pythona, b, c = ...
    99+
    2023-09-28
    python
  • Python变量与赋值的方法是什么
    本篇内容介绍了“Python变量与赋值的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python是一门独特的语言,与C语言有很大...
    99+
    2023-06-02
  • python输入数字赋值的方法是什么
    Python中可以使用input函数来获取用户输入的数字,并将其赋值给变量。input函数会将用户输入的内容作为字符串返回,如果需要...
    99+
    2023-09-17
    python
  • java给list赋值的方法有哪些
    Java 给 List 赋值的方法有以下几种:1. 使用 add() 方法逐个添加元素:```javaList list = new...
    99+
    2023-08-29
    java
  • python新增一列并赋值的方法是什么
    在Python中,可以通过以下几种方式新增一列并赋值:1. 使用字典赋值:如果已经有一个字典或者DataFrame,可以直接通过字典...
    99+
    2023-10-18
    Python
  • python定义变量不赋值的方法是什么
    在Python中定义变量但不赋值,可以使用None关键字来表示一个空值。例如:```x = None```这样定义的变量x没有具体的...
    99+
    2023-10-10
    python
  • php给input赋值的方法是什么
    在PHP中,给input赋值有多种方法,取决于你是在服务器端还是在客户端进行操作。1. 在服务器端给input赋值:你可以使用PHP...
    99+
    2023-09-27
    php
  • C#枚举赋值的方法是什么
    这篇文章主要讲解了“C#枚举赋值的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举赋值的方法是什么”吧!Q:我留意到Code #02中的.field public stati...
    99+
    2023-06-18
  • php变量赋值的方法是什么
    在PHP中,变量可以通过简单的赋值操作来进行赋值。赋值操作使用等号(=)进行,将右边的值赋给左边的变量。例如,要将值"Hello W...
    99+
    2023-08-29
    php
  • python中变量声明和赋值的方法是什么
    在Python中,变量的声明和赋值是同时进行的,可以使用以下方式进行变量声明和赋值:1. 直接赋值:通过使用等号(=)来将一个值赋给...
    99+
    2023-08-08
    python
  • python同步赋值的互换变量方法是什么
    Python中互换两个变量的值有多种方法,其中一种常见的方法是使用同步赋值方式。同步赋值可以同时给多个变量赋值,可以使用多个变量交换...
    99+
    2023-09-06
    python
  • Python中list列表的赋值方法及遇到问题处理
    目录1.列表list赋值方法2.浅拷贝(shallowcopy)3.深拷贝4.关于拷贝操作的提醒问题起源: 本文的原因是因为在使用list的直接赋值b=a时,得到的结果与预期不同,后...
    99+
    2022-11-13
  • java字符串赋值的方法是什么
    在Java中,有多种方法可以赋值给字符串变量:1. 使用双引号赋值:可以直接使用双引号将字符串赋值给变量,例如:`String st...
    99+
    2023-10-07
    java
  • Python输入输出与高阶赋值的方法是什么
    本篇内容主要讲解“Python输入输出与高阶赋值的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python输入输出与高阶赋值的方法是什么”吧!1. 输入、输出与注释1.1 获取用户输...
    99+
    2023-06-25
  • Python中list列表的赋值方法及遇到的问题怎么处理
    这篇文章主要介绍“Python中list列表的赋值方法及遇到的问题怎么处理”,在日常操作中,相信很多人在Python中list列表的赋值方法及遇到的问题怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”P...
    99+
    2023-06-29
  • python中list列表复制的几种方法(赋值、切片、copy(),deepcopy())
    目录1、浅拷贝和深拷贝2、直接赋值3、for循环4、切片5、copy()方法(1)list.copy()方法(2)copy.copy()方法6、deepcopy()方法1、浅拷贝和深...
    99+
    2022-11-11
  • sql给declare变量赋值的方法是什么
    在SQL中,可以使用SET语句或SELECT语句来给DECLARE变量赋值。1. 使用SET语句:```DECLARE @v...
    99+
    2023-09-15
    sql declare
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作