【发布时间】:2011-05-02 14:45:34
【问题描述】:
这是一个关于 Python 如何处理数据和变量的简单问题。我做了很多实验,大部分都弄明白了 Python,除了这一直让我绊倒:
[编辑:为了清楚起见,我将示例分开并重新排列]
示例 1:
>>> a = [[1], 2]
>>> a[0:1]
[[1]]
>>> a[0:1] = [[5]]
>>> a
[[5], 2] # The assignment worked.
示例 2:
>>> a = [[1], 2]
>>> a[0:1][0]
[1]
>>> a[0:1][0] = [5]
>>> a
[[1], 2] # No change?
示例 3:
>>> a = [[1], 2]
>>> a[0:1][0][0]
1
>>> a[0:1][0][0] = 5
>>> a
[[5], 2] # Why now?
谁能给我解释一下这里发生了什么?
到目前为止,答案似乎声称a[0:1] 返回一个新列表,其中包含对a 的第一个元素的引用。但我不明白这如何解释示例 1。
【问题讨论】:
-
有趣的问题。让我们看看亚历克斯怎么说。 :)
标签: python list variable-assignment slice