我对python知之甚少,但我对以下代码的工作感到惊讶:
import sys
prev = [sys.maxint]*(5)
j = 0
print prev[j]
print prev[j-1]
总的来说,我认为第二个print
语句会给我一个错误。为什么这样做?
我需要将一些python
代码转换为C++
,而在C++
中这将无效。
答案 0 :(得分:5)
mylist[-1]
返回mylist
的最后一项,mylist[-2]
倒数第二项等。
这是设计的。阅读tutorial。
答案 1 :(得分:2)
那是因为j - 1计算结果为-1,当用作python列表的索引时,表示最后一个元素。
答案 2 :(得分:2)
数组l
的索引可以是[-len(l), len(l)-1]
范围内的整数(注意:两端都包含)。您熟悉[0, len(l)-1]
范围内的指数。范围[-len(l),-1]
中的索引如下:在该范围内取i
,然后l[i] == l[len(l) + i]
。从本质上讲,负数从数组的末尾向后计数。
因此,prev[j-1] = prev[-1] = prev[len(prev) + -1] = prev[5 - 1] = prev[4]
或数组中的最后一个元素。
答案 3 :(得分:1)
在python x [-1]中返回列表中的最后一个元素