不同的变量在内存中有不同的存储空间,每个存储空间都有一个ID

>>> a = 32
>>> id(a) # 查看ID
1571185856
>>> b = a
>>> id(b)
1571185856

  声明一个变量a,再把a的值赋值给b,得到a,b两个变量,但是ID相同,即指向同一个内存地址,就像以前的人起名字,名、字、号。

  那么对b重新赋值呢

>>> b = 33
>>> id(b)
1571185888
>>> id(a)
1571185856

  a还是原来的ID,但是b变了。他把名字改了,但是另外一个人恰好又起了这个名字。这两个名字指的就是两个人了。

  下面进入正题,什么是可变数据类型呢?变量的值改变但是ID不变,反之则是不可变数据类型

  可变数据类型:列表、字典、集合

>>> name_list = ['alex', 'mary']
>>> id(name_list)
2463315069192
>>> name_list[0] = ['eric']
>>> id(name_list)
2463315069192
>>> name_list.append('jake')
>>> name_list
[['eric'], 'mary', 'jake']
>>> id(name_list)
2463315069192

列表

>>> person = {'name': 'alex', 'age': 24}
>>> id(person)
2463314404192
>>> person['gender'] = 0
>>> person
{'name': 'alex', 'age': 24, 'gender': 0}
>>> id(person)
2463314404192

字典

  不可变数据类型是不可修改的,硬要改的话只能是重新赋值。

>>> name = 'jake'
>>> id(name)
2463315000432
>>> name.replace('e', 'ie')
'jakie'
>>> id(name)
2463315000432 # id没变
>>> name
'jake'
>>> name = name.replace('e', 'ie')
>>> id(name)
2463314429184 #重新赋值,ID变化,name也变
>>> name
'jakie'

字符串

  元组和列表类似,有索引,如果像改列表一样尝试修改元组的话直接报错

>>> name_tuple = ('alex', 'maria')
>>> id(name_tuple)
2463314574664
>>> name_tuple[0]
'alex'
>>> name_tuple[0] = 'a'
Traceback (most recent call last):
File "<pyshell#39>", line 1, in <module>
name_tuple[0] = 'a'
TypeError: 'tuple' object does not support item assignment

元组

hash:不可变数据类型才能被hash

可变数据类型&不可变数据类型的更多相关文章

  1. python 可变数据类型&不可变数据类型

    在python中,数据类型分为可变数据类型和不可变数据类型,不可变数据类型包括string,int,float,tuple,可变数据类型包括list,dict. 所谓的可变与不可变,举例如下: > ...

  2. python--判断数据类型可不可变

    内存是一块空间,可以比喻成一个比较大的房子,定义一个变量就是在大房子中建立一个小房子,判断一个数据类型可不可变,就是看在这个这个大房子中有没有新建小房子,可以通过id来判断,如果id没有变化则是不可变 ...

  3. Python编程Day5——可变与不可变类型、数据类型整合

    一.可变与不可变类型1.可变类原值型:只改变,但id不变,证明就是在改变原值,是可变类型2.不可变类型:值改变,但id也跟着改变,证明是产生了新的值,是不可变类型 x= print(id(x)) x= ...

  4. Python数据类型的可变与不可变

    首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...

  5. python中不可变数据类型和可变数据类型

    在学习python过程中我们一定会遇到不可变数据类型和可变数据类型. 1.名词解释 以下所有的内容都是基于内存地址来说的. 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址 ...

  6. python的可变与不可变数据类型

    <python的可变与不可变数据类型>     python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其 ...

  7. day6_7.4总结数据类型的可变不可变

    续昨天: 列表的常用方法: 1.chear() 用途:清空列表,其返回值无,返回none. list1=[1,2,3,4,5] a=list1.clear() print(list1) print(a ...

  8. python3笔记十四:python可变与不可变数据类型+深浅拷贝

    一:学习内容 python3中六种数据类型 python赋值 python浅拷贝 python深拷贝 二:python3六种数据类型 1.六种数据类型 Number(数字) string(字符串) L ...

  9. python可变与不可变数据类型+深浅拷贝

    转自:https://www.cnblogs.com/miaomiaokaixin/p/11497813.html 一:学习内容 python3中六种数据类型 python赋值 python浅拷贝 p ...

  10. Python--基本数据类型(可变/不可变类型)

    目录 Python--基本数据类型 1.整型 int 2.浮点型 float 3.字符串 str 字符串格式 字符串嵌套 4.列表 list 列表元素的下标位置 索引和切片:字符串,列表常用 5.字典 ...

随机推荐

  1. ReactiveX 学习笔记(12)调度器

    Schedulers, threading and testing 本文的主题为调度器,多线程以及测试. RxJava操作符(六)Utility SubscribeOn / ObserveOn Sub ...

  2. 【386】operator 的 itemgetter、slice、and_、or_

    itemgetter 用来获取数组中指定索引的元素 from operator import itemgetter itemgetter(1, 3, 5)('ABCDEFG') output: ('B ...

  3. 【374】Adobe Acrobat 操作技巧

    1. 文件内容增减 参考:如何在PDF文件中删除页面 参考:如何旋转.移动.删除和重新编号 PDF 页面 双击PDF文档,并在预览程序中打开它. 如果在其他程序(如Adobe Reader)中打开文档 ...

  4. 计算机网络协议包头赏析-TCP

    仍然先把TCP报文段的格式放在这里,然后我们看图说话: TCP报文段也分为首部和数据两部分,首部默认情况下一般是20字节长度,但在一些需求情况下,会使用“可选字段”,这时,首部长度会有所增加. 下面, ...

  5. 367. Valid Perfect Square

    原题: 367. Valid Perfect Square 读题: 求一个整数是否为完全平方数,如1,4,9,16,……就是完全平方数,这题主要是运算效率问题 求解方法1:812ms class So ...

  6. 100个常用的Linux命令——转载

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  7. 在Unity中使用Lua脚本

    前言:为什么要用Lua首先要说,所有编程语言里面,我最喜欢的还是C#,VisualStudio+C#,只能说太舒服了.所以说,为什么非要在unity里面用Lua呢?可能主要是闲的蛋疼.....另外还有 ...

  8. 抢红包js程序

    https://www.cnblogs.com/miid/p/5192235.html <!DOCTYPE html> <html> <head> <meta ...

  9. hdu3189-Just Do It-(埃氏筛+唯一分解定理)

    Just Do It Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. Applese走迷宫-bfs

    链接:https://ac.nowcoder.com/acm/contest/330/C来源:牛客网 题目描述 精通程序设计的 Applese 双写了一个游戏. 在这个游戏中,它被困在了一个 n×mn ...