【发布时间】:2019-06-27 00:58:49
【问题描述】:
我在 python shell 中尝试这些并且得到了相当混乱的结果。
>>> p = [1, 2, 3, 4, 5, 6, 7, 8]
>>> p
[1, 2, 3, 4, 5, 6, 7, 8]
>>> p[2:8:2]
[3, 5, 7]
>>> id(p[2:8:2])
37798416
>>> id(p[2:8:2])
37798416
>>> id(p[2:8:2])
50868392
注意 id 第三次是如何改变的!
>>> id(p[2:8:2])
37798336
又变了! 问题 1:这是如何发生的以及为什么发生的?
问题#2:
>>> p[2:8:2] = [33,55,77]
>>> p
[1, 2, 33, 4, 55, 6, 77, 8]
python 如何准确地“存储” p[2:8:2] ? (可能“商店”这个词不合适,但我希望你明白)。它看起来不像是与原始列表不同的列表(尽管它由原始列表中的非连续不可变项组成),因为对 this 列表的更改反映在原始列表中!
【问题讨论】:
-
在 Qn2 中,我不是在询问符号。但是关于(子)列表是如何创建和管理的,它究竟包含什么?它是对原始列表中项目的引用列表吗?
标签: python python-3.x slice