问题描述
我想迭代并枚举列表的最后几项:
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,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,5]
使用枚举:
print ([(i,j)[1] for i,j in enumerate(a[-3:])])
,
[c for c,i in enumerate(a[-3:],-3)]
给出:[-3,-2,-1]
你应该得到我不是 c
[i for c,-3)]
这会给你 [3,5]