| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1409 人关注过本帖
标题:关于变量赋值的问题Python
只看楼主 加入收藏
睡觉的虫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-8-17
结帖率:0
收藏
 问题点数:0 回复次数:3 
关于变量赋值的问题Python
菜鸟看书自学 看到一个东西很奇怪

就是num=[1,2,3]
n=num
后,修改num,n的值也一并修改 很看不懂
删除num的话,n也还在

如果n=num+[4]的话,num修改,如
num.reverse()
n
[1,2,3,4]
是不变得,仍然是当时的num+[4]

这两个主要是n=num的时候 好像是直接指向num的内存 而不是新创建一个??但是第一个例子删除num的话,n也还在

而且如果num=3
n=num
修改num=2,n仍然=3
所以定义num的内容不是列表而是数的话,又不一样了??

到底怎么回事呢 好懵

新手只有20分 全送了 求大神
搜索更多相关主题的帖子: 变量 赋值 Python num 修改 
2018-08-17 18:23
wenziyang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-2-13
收藏
得分:0 
代码?
2019-02-13 22:40
w1031271617
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2017-10-17
收藏
得分:0 
列表类型是引用类型,n=num引用的是同一个地址(num的地址),修改num就会改变地址里面值的内容,然后因为n引用的是相同的地址,所以n的值也会变掉。
n=2是值类型(2是int型的)
你可以看看值类型和引用类型的区别
2019-02-15 12:32
风卷浪起
Rank: 3Rank: 3
来 自:universe
等 级:论坛游侠
威 望:4
帖 子:166
专家分:149
注 册:2021-11-13
收藏
得分:0 
你的意思就是说,你将num的值关联到n,所以它们会一起修改,你应该将num的值复制给n,像这样:n = num[:]。
(有可能需要在Python3.7以上的版本用)

人生苦短,我用Python~~~
2021-11-17 13:22
快速回复:关于变量赋值的问题Python
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015348 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved