【发布时间】:2011-03-27 22:35:09
【问题描述】:
所以我一直在玩 python 并注意到一些似乎有点奇怪的东西。 -1 从列表中选择的语义似乎不一致。
所以我有一个数字列表
ls = range(1000)
列表的最后一个元素当然是ls[-1],但如果我采用它的子列表,这样我就可以得到从中点到结尾的所有内容
ls[500:-1]
但这并没有给我一个包含列表中最后一个元素的列表,而是一个包含直到最后一个元素的所有内容的列表。但是,如果我这样做了
ls[0:10]
我得到一个包含第十个元素的列表(所以选择器应该包含在内),为什么它不适用于-1。
我当然可以使用ls[500:] 或ls[500:len(ls)](这很愚蠢)。我只是想知道与 -1 的交易是什么,我意识到我在那里不需要它。
【问题讨论】:
-
请注意,这是一个较老的问题,并且某些行为特定于 python2。在 python3 中,等价于
ls = list(range(1000))
标签: list python-2.x sublist