Python中list [1]和list [1:]有什么区别?

时间:2012-10-05 11:35:11

标签: python list variable-assignment

>>> 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, [...] ]?

不好意思,代码在哪里不同?它是:还是别的什么?

3 个答案:

答案 0 :(得分:10)

您使用的索引和切片分配完全不同。

将此与表达式中的列表的索引和切片进行比较:

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

通过在列表索引中使用:冒号,您需要一个切片,它始终是另一个列表。

在Python中,您可以为列表中的单个项目和列表的切片分配值。

答案 1 :(得分:3)

slicing用于提取列表的sublist,其中indexing用于检索列表的特定元素

slicedList = aList[beginIndex:endIndex]

d[1:]指的是对列表d进行切片 - 请参阅this。 - 这是切片

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

答案 2 :(得分:1)

  

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

当您执行c 1 = c时,您将c本身分配给c的第二个位置。这样您就可以创建循环引用。因此,不再显示列表,解释器显示[...]以指示其循环引用。 See this for more info