2012-10-05 118 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

非常感謝你 –

相關問題