【发布时间】:2014-05-20 00:16:26
【问题描述】:
如何解释?
s = [1,2,3,4,5,6,7,8,9]
s[0] = s[0:0] #replace s[0] by empty list s[0:0]
s
[[], 2, 3, 4, 5, 6, 7, 8, 9] # s after assignment
len(s)
9
s[3] = s[0:0] # samething for s[3]
[[], 2, 3, [], 5, 6, 7, 8, 9] # s after s[3] has been replaced by s[0:0]
len(s)
9
s[5:7] = s[0:0] # replace a slice by empty list
s
[[], 2, 3, [], 5, 8, 9] # slice has been removed
len(s)
7
按照第一部分的逻辑,元素被一个空列表替换并且列表的长度保持不变,我可以预期切片的每个元素都应该被一个空列表替换。
嗯,不是!怎么解释的?
【问题讨论】:
-
“我可以期望切片的每个元素都应该被一个空列表替换”-切片分配不会按元素操作。
标签: python python-2.7 ipython