iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python元组的可变与不可变问题
  • 637
分享到

python元组的可变与不可变问题

python元组python元组可变python元组不可变 2022-12-23 12:12:49 637人浏览 薄情痞子

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

摘要

目录python元组的可变与不可变为什么元组Tuple是不可变的,列表List是可变的1.所谓元组的不可变指的是元组所指向的内存中的内容不可变2.List 是可变的总结Python元

Python元组的可变与不可变

学过python的人都知道有一种数据类型叫做元组,而元组与列表最重要的区别就在于元组一经定义就不能改变其内容,但元组中的内容真的是完全不可变的吗,看了下面这段代码想必你也会产生这样的疑问.

代码如下:

tuple = (1, 2, 3, [1, 4, 7])
print(tuple)
tuple[3][2] = 100
print(tuple)

在编译器上运行上述代码,结果如下:

从结果来看,元组中数据已经产生了变化,那元组还是不可变的吗,我们下面就从内存来解释元组的可变与不可变.

上面的图就是内存图,元组和列表都是引用数据类型,其内存空间存放的元素存放位置的地址值,所谓元组的不可变指的是元组所指向的内存中的内同不可变,在上图中体现的是1,2,3和0x200这四个值不可变,而对于0x200这个地址所指向的列表来说,其内容是可以改变的.

为什么元组Tuple是不可变的,列表List是可变的

1.所谓元组的不可变指的是元组所指向的内存中的内容不可变

# 关于元组是不可变的
tupleA = (1, 2, 3, 4)
# tupleA[0] = 0  # 报错 TypeError: 'tuple' object does not support item assignment 不支持修改元素
# 查看内存地址 id()
print(id(tupleA))
tupleA = (1, 2, 3, 4)
print(id(tupleA))
tupleA = (0, 1, 2, 3)
print(id(tupleA))

输出结果是: 

1960670738208
1960670738208
1960670737888

从以上实例可以看出,重新赋值的元组 tupleA,绑定到新的对象了,不是修改了原来的对象。

2.List 是可变的

#关于List是可变的
listA = [1, 2, 3]
print(id(listA))
listA[0] = 0
print(listA)
print(id(listA))
listA = [1, 2, 3]
print(id(listA))
listA = [1, 2, 4]
print(id(listA))

输出结果是

2974141229248
[0, 2, 3]
2974141229248
2974141227968
2974141229248

从以上实例可以看出,重新赋值的列表listA,并未绑定到新的对象,而是修改了原来的对象。

  • 字典中的 key 必须是不可变的类型
  • int str tuple  是值类型 (是不可变的)
  • List set dict  是引用类型(是可变的) 

总结

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

--结束END--

本文标题: python元组的可变与不可变问题

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

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

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

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

下载Word文档
猜你喜欢
  • python元组的可变与不可变问题
    目录python元组的可变与不可变为什么元组Tuple是不可变的,列表List是可变的1.所谓元组的不可变指的是元组所指向的内存中的内容不可变2.List 是可变的总结python元...
    99+
    2022-12-23
    python元组 python元组可变 python元组不可变
  • python元组的可变与不可变问题怎么解决
    本文小编为大家详细介绍“python元组的可变与不可变问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“python元组的可变与不可变问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。pytho...
    99+
    2023-07-04
  • Python中可变变量与不可变变量详解
    目录一 、常见的变量分类1、变量的创建二、变量分类1、、常见的不可变变量2、常见的可变变量三、拷贝的差别四、参数传递的差别前言: C++不同于Python的显著特点,就是有指针和引用...
    99+
    2022-11-12
  • 基于String不可变字符与StringBuilder可变字符的效率问题
    String与StringBuilder的效率 ‍1.如果需知要拼接的内容比较道少 不可变,拼接的多会产生多个新的对象,十分的耗费内存空间和程序执行效率 String...
    99+
    2022-11-12
  • python数据类型可变与不可变深入分析
    目录一.可变类型与不可变类型的特点1.不可变数据类型2.可变数据类型二.哪些是可变类型哪些是不可变类型一.可变类型与不可变类型的特点 1.不可变数据类型 不可变数据类型在第一次声明赋...
    99+
    2022-11-12
  • Python可变与不可变数据和深拷贝与浅拷贝
    目录浅拷贝和深拷贝什么是可变数据和不可变数据那么拷贝函数是干什么的?浅拷贝深拷贝总结浅拷贝和深拷贝 拷贝函数是专门为可变数据类型list、set、dict使用的一种函数。作用是,当一...
    99+
    2022-11-10
  • php数组中的元素可不可以是变量
    今天小编给大家分享一下php数组中的元素可不可以是变量的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP数组中的元素可以是...
    99+
    2023-07-02
  • Python 的可变和不可变对象详情
    目录Python 中的可变和不可变对象一、文字描述可变和不可变对象1、可变与不可变对象归类2、可变与可变对象的区别3、不可变对象的应用场景二、代码角度区别1、不可变对象-整型2、不可...
    99+
    2022-11-12
  • Python中的可变对象和不可变对象
    什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。 可变对象,该对象所指向的内存中的...
    99+
    2023-01-30
    对象 Python
  • Python的基本类型介绍和可变不可变
    Python的基本类型介绍 前言   做python有一段时间了,从工作开始就在不断地学习和积累。但是有时候用到一些技术点,甚至是基础知识的时候,总是会遗忘。所以,从今天开始,就在这里记录下来,不仅可以分享给大家,而且还可以帮助我来复习。...
    99+
    2023-01-30
    类型 Python
  • python可变对象和不可变对象的解释
    数据类型分为可变、不可变。可变对象表示可以原处修改该数据对象,不可变对象表示必须创建新对象来保存修改后的数据。 在基础数据类型中: 数值、字符串、元组、frozenset是不可变对象 列表、set、dict是可变对象 对于可变对象,...
    99+
    2023-01-30
    对象 python
  • Python 面试高频问题:可变数据类型和不可变数据类型的区别
    Python可变数据类型和不可变数据类型是一个基础而且重要的考点。简单地说:这里的可变和不可变是指当变量改变的时候,数据的地址是否会改变!可变数据类型:如果改变了变量的值,相当于是新建了一个对象(即地址会被改变)。可变数据类型:变量的值发生...
    99+
    2023-05-19
    Python 可变数据类型 不可变数据类型
  • Python可变与不可变数据和深拷贝与浅拷贝实例分析
    这篇文章主要介绍“Python可变与不可变数据和深拷贝与浅拷贝实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python可变与不可变数据和深拷贝与浅拷贝实例分析”文章能帮助大家解决问题。浅拷...
    99+
    2023-06-29
  • Python中可变和不可变对象的深入讲解
    目录前置知识 有哪些可变对象,哪些不可变对象? 不可变对象和可变对象的区别? 不可变对象的应用场景 从内存角度出发说下有什么区别? 不可变对象可变对象从代码角度看看区别 不可变对象...
    99+
    2022-11-12
  • python的可变和不可变数据类型是什么
    这篇文章主要讲解了“python的可变和不可变数据类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的可变和不可变数据类型是什么”吧!不可变数据类型python中不可变数据...
    99+
    2023-06-02
  • Python中可变和不可变对象的详细介绍
    这篇文章主要介绍“Python中可变和不可变对象的详细介绍”,在日常操作中,相信很多人在Python中可变和不可变对象的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中可变和不可变对象的详...
    99+
    2023-06-20
  • python变量名可以有哪些元素组成
    python变量名是由字母、下划线(_)和数字组成的,python变量名可以是字母或者下划线(_),但不能以数字开头,且变量名区分大小写,不能与python关键字重名。...
    99+
    2022-10-15
  • Python可变集合和不可变集合的构造方法大全
    目录一、对比数据类型 二、可变集合构造方法 三、不可变集合的构造方法 四、集合构造注意事项  Python集合又是一种新的数据类型,集合有两种形式:可变集合(set())和不可变集合...
    99+
    2022-11-12
  • Python可变集合和不可变集合的构造方法有哪些
    这篇文章主要介绍了Python可变集合和不可变集合的构造方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Python集合又是一种新的数据类型,集合有两种形...
    99+
    2023-06-21
  • php数组中的元素可以是变量吗
    PHP数组中的元素可以是变量;数组是一个能在单个变量中存储多个值的特殊变量,其中存储的值可以设置为变量,也可以利用list()语句将数组元素转换成变量,语法为“list(var1,var2...)”。本文操作环境:Windows10系统、P...
    99+
    2022-07-11
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作