首页 技术 正文
技术 2022年11月14日
0 收藏 625 点赞 3,724 浏览 843 个字

python初学者可能会对list数据类型和int或者是字符串数据类型比较迷茫  list是引用,是指向的一个内存地址, 变量不是引用的

啥也不说上解释:

a = 1
b = a
a = 2
print(a)

结果:啥也不说肯定是2了

那么我打印b的话

a = 1
b = a
a = 2
print(b)

结果就是:1

为什么呢?

因为a = 1, 然后我把a的数据赋值给了变量b 然后赋值之后我又给a重新赋值 a = 2 那么b = 1, 因为这个数据不是存在系统内存里面的,很简单你除非再给变量b重新赋值

字符串类型也会这样, 因为这两个类型是把数据存在变量里面的,举例说: 张三有100块钱 然后张三把100给了李四, 然后这时候李四也有100块钱了, 再然后张三又有了200块钱,那肯定不可能张三把这刚刚有的200,直接性的给李四, 除非,张三在给李四一次2300块钱

接下来说说list类型

list数据是存在计算机内存中的,

你比如,[1,2,3,4,5[1,2,3],7,8,9] 第一层的数据list是直接在内存中展现出来的, 而第二次呢,可以理解为一个a链接, 第二层的数据是内存中的一个链接, 只有你去第二层的数据的时候才会在内存中直接展现出第二层的数据, 计算机默认指针是指向第一层的, 就像a链接, 文章中有个a链接, 只显示这个a链接的标题, 只有你点击的时候, 指针才会指向这个a链接里面的数据展现出来

代码:

a = ["OPPO","VIVO","IPHONE","LEVOVO"]
b = a
a[0] = "品牌"
print(b)

结果:[‘品牌’, ‘VIVO’, ‘IPHONE’, ‘LEVOVO’]

因为:list是存在内存中的, 你修改的不是简单表面的变量的数据,你修改的是内存里的数据

a = ["OPPO","VIVO","IPHONE","LEVOVO"]
b = a
b[0] = "OPPO"
print(b)

结果:[‘品牌’, ‘VIVO’, ‘IPHONE’, ‘LEVOVO’]

python中只有int和字符串类型不会存在计算机内存中, 其它数据都会存在内存中, list是引用,是指向的一个内存地址

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,093
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,569
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,417
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,190
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,825
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,908