【发布时间】:2016-02-02 22:18:14
【问题描述】:
考虑以下代码:
def mystr(L):
print(L[0])
return L[-1]
mystery_list = [2,5]
print(mystr(mystery_list))
Output (stdout):
2
5
我认为 Python 一旦进入负数区域,就会开始倒数?因此 [-1] 是最后一个元素,[-2] 是倒数第二个元素。我在这方面是正确的吗?
这种行为是否存在于 Python 的其他地方(即:字符串)?
如果我创建此列表的副本,并且我从负数开始到 0 - 列表会倒置吗?即 newList = [-1:0]
谢谢。
【问题讨论】:
-
你可以简单地尝试做你描述的事情并自己回答你的问题......
-
您的问题是关于切片/反转列表还是什么?是的,负指数从右开始计数。是的,索引通常适用于字符串而不是列表——任何支持它的方法。不,这不会颠倒列表,因为“步骤”仍然是积极的。反向是
[::-1]。 -
Python 确实允许对列表和类似序列的对象(元组、字符串、双端队列等)进行负索引。
-
对负索引的支持取决于类的 getitem 方法。 AFAIK,所有 CPython 内置类都有这个。请注意,itertools.islice 不支持负索引,但是,无限的可迭代对象甚至可能没有“右端”。
标签: python list python-3.x indexing slice