| 查看: 1029 | 回复: 5 | ||
tuburfransth金虫 (正式写手)
|
[求助]
python中del a[:]为什么会清空列表a? 已有1人参与
|
|
>>> a = [1, 2, 3, 4] >>> b = a[:] >>> id(a) 8937640 >>> id(b) 8938800 >>> id(a[:]) 8939000 >>> del a[:] >>> a [] >>> b [1, 2, 3, 4] 我想请教a[:]是列表a的复制,del a[:]应该只是建立一个列表a的复制然后再清空,而不是清空列表a呀。 同时,列表a和a[:]的id也是不同的,这也说明了我以上的观点应该是正确的啊,不知道是哪里分析错了,请知道的人解释下,谢谢! |
» 猜你喜欢
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
基金申报
已经有3人回复
国自然申请面上模板最新2026版出了吗?
已经有9人回复
溴的反应液脱色
已经有6人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
推荐一本书
已经有10人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
【答案】应助回帖
感谢参与,应助指数 +1
|
交互环境下 >>> 12 是给变量_赋值(这一点有点像Matlab), 所以我猜测在一个刚打开的shell中输入 >> a = [1, 2, 3, 4 >>> id(a[:]) ? ?? ???8939000 >>> _ 结果应该就是a值的拷贝(你可以试试),如果这样也就可以解释为什么id(a[:])与id(a)不一样,因为变量_和变量a指向的内存地址不同。 而del a[:]将a列表中元素全部删除我是这么理解的:就像del a[1:2]是将列表中第二个元素一样,del a[:]是将a中元素全选后删除。 希望能对你有帮助。 发自小木虫Android客户端 |
2楼2017-01-01 23:23:32
tuburfransth
金虫 (正式写手)
- 应助: 9 (幼儿园)
- 金币: 2380.1
- 散金: 68
- 红花: 5
- 帖子: 384
- 在线: 124.8小时
- 虫号: 3425987
- 注册: 2014-09-18
- 性别: GG
- 专业: 模式识别
3楼2017-01-02 11:14:38
【答案】应助回帖
★ ★ ★ ★ ★
tuburfransth: 金币+5, ★★★★★最佳答案 2017-01-02 12:07:48
tuburfransth: 金币+5, ★★★★★最佳答案 2017-01-02 12:07:48
|
可能是这样的,python比较强调多态,对于不同的操作,它都是能执行就执行的。 发自小木虫Android客户端 |
4楼2017-01-02 11:30:30
5楼2017-01-02 11:33:02
6楼2017-01-02 11:34:01












回复此楼