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

python的可变和不可变数据类型是什么

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

python的可变和不可变数据类型是什么

这篇文章主要讲解了“python的可变和不可变数据类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的可变和不可变数据类型是什么”吧!

不可变数据类型

python中不可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,就称不可变数据类型,包括:int(整型)、string(字符串)、tuple(元组)

整型

首先我们来看一下整型为什么是不可变数据类型。给一个变量x赋值,然后改变这个x的值,输出前后两次的内存地址id和数据类型type

  • id():获取对象的内存地址

  • type():当只有一个参数的时候,返回对象的类型。当有三个参数的时候返回一个类对象。

# 赋值x = 1# 打印x的内存地址和数据类型print(id(x), type(x))# 输出:8791164511056 <class 'int'># 改变x的值x = 2# 打印改变后的x的内存地址和数据类型print(id(x), type(x))# 输出:8791164511088 <class 'int'>

从上面的代码我们可以得出,变量x为整型,且当x的值发生改变的时候,变量的内存地址也发生了改变。所以整型是不可变的数据类型。

字符串

根据上面的实例,我们把变量x的值换成字符串试试,看能不能得出字符串是不可变数据类型的结论呢~

# 赋值x = 'abcdefg'# 打印x的内存地址和数据类型print(id(x), type(x))# 输出:30828000 <class 'str'># 改变x的值x = 'higklmn'# 打印改变后的x的内存地址和数据类型print(id(x), type(x))# 输出:30828168 <class 'str'>

代码中当变量改变时,变量的内存地址由30828000 变为了30828168 。所以字符串是不可变数据类型。

元组

元组被称为只读列表,即数据可以被查询,但不能被修改。如果我们强行修改元组中的数据,会报错。

t = (1, 2, 3, 4, 5)# 修改元组的值t[1] = 100会报错:TypeError: 'tuple' object does not support item assignment

可变数据类型

python中对可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,就称可变数据类型。包括:set(集合)、list(列表)、dict(字典)

集合

我们先来看一下集合,定义一个集合set1,改变set1的值,且输出两次的内存地址

set1 = {1, 2, 3, '123'}print("集合:", set1, "内存地址:", id(set1), "\t", "数据类型:", type(set1), "\t")# 输出:集合: {1, 2, 3, '123'} 内存地址: 41388296      数据类型: <class 'set'>     # 给set1添加一个元素set1.add(100)print("集合:", set1, "内存地址:", id(set1), "\t", "数据类型:", type(set1), "\t")# 输出:集合: {1, 2, 3, 100, '123'} 内存地址: 41388296      数据类型: <class 'set'>

从上面代码我们可以看出,即使一个集合发生了改变,这个集合的内存地址是不变的。所以集合是可变数据类型。

列表
list1 = [1, 2, 3, 4, 5]print("列表:", list1, "内存地址:", id(list1), "\t", "数据类型:", type(list1), "\t")# 输出:列表: [1, 2, 3, 4, 5] 内存地址: 1860168      数据类型: <class 'list'> list1[0] = 100print("列表:", list1, "内存地址:", id(list1), "\t", "数据类型:", type(list1), "\t")# 输出:列表: [100, 2, 3, 4, 5] 内存地址: 1860168      数据类型: <class 'list'>

当列表中的值发生了改变时,内存地址依旧不变,所以列表是可变数据类型。

字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。字典中的key值必须是可哈希的数据类型,也就是整型,字符串,元组等。

dict1 = {'name': 'kkk', 'age': 18}print("字典:", dict1, "内存地址:", id(dict1), "\t", "数据类型:", type(dict1), "\t")# 字典: {'name': 'kkk', 'age': 18} 内存地址: 31033960      数据类型: <class 'dict'> dict1['sex'] = 'man'print("字典:", dict1, "内存地址:", id(dict1), "\t", "数据类型:", type(dict1), "\t")# 字典: {'name': 'kkk', 'age': 18, 'sex': 'man'} 内存地址: 31033960      数据类型: <class 'dict'>

从上面代码可以看出,当字典中的元素发生改变时,内存地址不变,都是31033960。所以字典是可变数据类型。

感谢各位的阅读,以上就是“python的可变和不可变数据类型是什么”的内容了,经过本文的学习后,相信大家对python的可变和不可变数据类型是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

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

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

python的可变和不可变数据类型是什么

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

下载Word文档

猜你喜欢

python的可变和不可变数据类型是什么

这篇文章主要讲解了“python的可变和不可变数据类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的可变和不可变数据类型是什么”吧!不可变数据类型python中不可变数据
2023-06-02

python中可变数据类型和不可变数据类型有什么区别

这篇文章将为大家详细讲解有关python中可变数据类型和不可变数据类型有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、区别说明可变数据类型是当该数据类型对应变量的值发生变化时,对
2023-06-15

可变、不可变数据类型

可变数据类型:在id不变的情况下,value可改变(列表和字典是可变类型,但是字典中的key值必须是不可变类型) 不可变数据类型:value改变,id也跟着改变。(数字,字符串,布尔类型,都是不可类型)字符串也可以像列表一样通过索引操作,但
2023-01-30
2023-06-02

不可变与可变,Python数据类型大揭秘!

通过本文的介绍,你应该对Python中的可变与不可变数据类型有了全面的理解。掌握这一概念对于编写高效、安全的Python代码至关重要。

Python的基本类型介绍和可变不可变

Python的基本类型介绍前言  做python有一段时间了,从工作开始就在不断地学习和积累。但是有时候用到一些技术点,甚至是基础知识的时候,总是会遗忘。所以,从今天开始,就在这里记录下来,不仅可以分享给大家,而且还可以帮助我来复习。博客会
2023-01-30

python函数的默认参数为什么不可以定义可变类型

这篇文章主要介绍“python函数的默认参数为什么不可以定义可变类型”,在日常操作中,相信很多人在python函数的默认参数为什么不可以定义可变类型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python函
2023-06-29

VB.NET中匿名类型可变与不可变之间有什么区别

这篇文章给大家分享的是有关VB.NET中匿名类型可变与不可变之间有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET匿名类型只要可以分为两种,一种是可变匿名类型;另一种则是不可变匿名类型。对于这两
2023-06-17

Python的变量和数据类型

Python的变量和数据类型是编程的基础,了解如何定义变量、不同的数据类型、变量赋值、命名规则和数据类型转换是成为Python程序员的第一步。深入理解这些概念将有助于编写更强大和灵活的Python程序。

JS的数据类型和变量指的是什么

JS的数据类型和变量指的是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JS的数据类型和变量JavaScript 有六种数据类型。主要的类型有 number、string、
2023-06-03

Python可变与不可变数据和深拷贝与浅拷贝实例分析

这篇文章主要介绍“Python可变与不可变数据和深拷贝与浅拷贝实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python可变与不可变数据和深拷贝与浅拷贝实例分析”文章能帮助大家解决问题。浅拷
2023-06-29

JavaScript的变量与数据类型是什么

这篇文章给大家介绍JavaScript的变量与数据类型是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言:我不是搞前端,而是搞后端的。本命编程语言是java。学习js的嘛,因为看到室友能做出动态网页,而我只能做出
2023-06-22

golang可变参数的语法和类型要求?

go语言中的可变参数语法为 funcname(param1, param2, ..., paramn ...type),其中 param1 至 paramn 是固定参数,type 是可变参数的类型。可变参数只能是切片、数组或可变参数本身,如
golang可变参数的语法和类型要求?
2024-04-30

编程热搜

  • 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动态编译

目录