2012-10-05 674 views
1
>>> c=[1,2,3] 
>>> c[1]=c 
>>> d=[1,2,3] 
>>> d[1:]=d 

>>> print(c) 
[1, [...], 3] # Why does C become [1, [...], 3]? 
>>> print(d) 
[1, 1, 2, 3] # Why is d not [1, [...] ]? 

不好意思,代码在哪里不一样?是:还是别的?Python中list [1]和list [1:]之间的区别是什么?

+3

为什么你在自己的内部嵌套列表? – 2012-10-05 11:36:29

回答

10

您正在使用索引和切片分配,这是非常不同的。

在表达索引和切片列表比较:

>>> c=[1,2,3] 
>>> c[1] 
2 
>>> d=[1,2,3] 
>>> d[1:] 
[2, 3] 

通过在列表索引使用:冒号,你所要求的切片,这始终是另一个列表。

在Python中,您可以将值分配给列表中的单个项目以及列表的一个片段。

+0

非常感谢你 –

3

slicing被用于提取的列表的sublist其中作为indexing用于以检索列表中的一个特定的元素

slicedList = aList[beginIndex:endIndex]

d[1:]指切片列表d - 参见this。 - 这是切片

c[1]是列表c中的元素。 - 这是索引

+0

非常感谢你 –

1

print(c)[1,[...],3]#为什么C变成[1,[...],3]?

当你在做c 1 = c时,你将c本身分配给c的第二个位置。这样您就可以创建循环引用了。因此,而不是再次显示列表,interprepreter显示[...]以指示其循环引用。 See this for more info

+0

非常感谢你 –

相关问题