python关于一些地址存储问题的知识
2024-08-30 20:45:38
在一个类型进行转换后不能马上进行操作.要先进行存储否则操作无效
原理一个类型转换后成为一个新的类型但是没有人接受它属于空值所以做任何操作都无效
li=[]
print(li.append) 也是报错的因为这样是打印你原来的列表但是那个列表已经没了
=赋值符 两个变量指向同一个内存地址
copy的原理 两个变量内存地址不一样但是 一层元素内存地址一样 二层元素因为被一层被一层元素包含所以
一个修改两个都会变化
deepcopy的原理 两个变量内存地址不一样 里面的元素内存地址也一样一旦更改一个就会开辟新的地址
import copy
li=[1,2,3,4,[5,6,7]]
lis = copy.deepcopy(li)
# lis = li.copy()
li.pop(1)
li[-1].append(99)
print(li)
print(lis)
print(id(li[1]))
print(id(lis[2]))
print(id(lis[1]))
print(id(li[-1][-1]))
print(id(lis[-1][-1]))
结果
[1, 3, 4, [5, 6, 7, 99]]
[1, 2, 3, 4, [5, 6, 7]]
1507093584
1507093584
1507093552
1507096656
1507093712
列表里的值存的是地址,只要你存的地址的地方改变了列表出来的值就会改变
最新文章
- dede currentstyle属性完美解决方案
- spring 缓存(spring自带Cache)(入门)源码解读
- GCD中的dispatch_semaphore的语法与作用
- JS--事件对象中部份浏览器不兼容方法
- javascript的变量、作用域和内存问题
- Android ListView 单条刷新方法实践及原理解析
- HDU4046--Panda(树状数组)
- level.go
- 请求转发 和 URL 重定向
- 公众号用户发送消息后台PHP回复没有反应的解决办法
- Android BrocastReceiver解析
- MT【269】含参函数绝对值最大
- 宇宙最帅叉叉——第三周博客 for 需求改进&;原型设计
- 【Java】包,jar包的扫描
- SpringCloud 简单理解
- 1034. [ZJOI2008]泡泡堂【贪心】
- 【leetcode 简单】 第七十三题 丑数
- WPF解决方案------调用线程无法访问此对象,因为另一个线程拥有该对象
- Unity的shader学习2
- 使用ExitProcess()结束本进程、TerminateProcess 结束进程
热门文章
- 【LeetCode】31. Next Permutation 解题报告(Python & C++)
- 1632 B君的连通
- 「实用」打造自我感觉非常漂亮的Mac终端
- 第三十七个知识点: The Number Field Sieve
- Class Activation Mapping (CAM)
- Scale-Invariant Error
- 基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】
- Vue-cli3.0配置全局less
- Zookeeper基础教程(三):Zookeeper连接使用—zkCli
- CSS基础 结构伪类选择器 last-child、first-child和nth-of-type的使用方法