请考虑以下代码:
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]< - 这会反转列表吗?
感谢。
答案 0 :(得分:1)
是的,使用负数编制索引是相对于列表末尾的。这适用于python all python sequences(以及许多其他旨在表现得像序列的对象)。
如果切片定义为sequence[i:j]
,则根据链接文档
如果
i
或j
为负数,则索引相对于字符串的结尾:len(s) + i
或len(s) + j
被替换。但请注意,-0
仍为0
。
序列的一些例子是:
答案 1 :(得分:0)
是的,你在这个假设中是正确的。字符串,元组,列表或任何序列都符合此行为并支持负索引。例如:
Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux >>> a = [1, 2, 3, 4, 5] >>> b = (1, 2, 3, 4, 5) >>> c = "12345" >>> print(a[-1]) 5 >>> print(b[-1]) 5 >>> print(c[-1]) 5