Python:枚举具有负索引的切片



我想迭代并枚举列表的最后几项:

a = [1,2,3,4,5]

[c for c, i in enumerate(a[-3:], -3)]给出:[-3, -2, -1]

[c for c, i in enumerate(list(a[-3:]))]给出:[0, 1, 2]

[c for c, i in islice(enumerate(a), -5)]提出:

ValueError: Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.

那么,如何枚举:使用负指数的[3, 4, 5]

示例:

for i, j in enumerate(...): print(i,j),其中...包含仅具有负索引的切片表达式,应给出:

0 3
1 4
2 5
a = [1,2,3,4,5]
print ([c for c in a[-3:]])

输出:

[3,4,5]

带枚举:

print ([(i, j)[1] for i, j in enumerate(a[-3:])])

[c for c, i in enumerate(a[-3:], -3)]给出:[-3, -2, -1]

你应该得到i而不是c

[i for c, i in enumerate(a[-3:], -3)]这会给你[3, 4, 5]

最新更新