Je veux parcourir et énumérer les derniers éléments d'une liste:

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

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

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

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

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

Alors, comment puis-je être énuméré: [3, 4, 5] en utilisant des indices négatifs ?

Exemple:

for i, j in enumerate(...): print(i,j)... contient une expression de tranche avec uniquement des indices négatifs devrait donner:

0 3
1 4
2 5
-1
Nikolay Shindarov 13 janv. 2021 à 08:01

2 réponses

Meilleure réponse
a = [1,2,3,4,5]

print ([c for c in a[-3:]])

Production:

[3,4,5]

Avec enumerate:

print ([(i, j)[1] for i, j in enumerate(a[-3:])])
0
Synthase 13 janv. 2021 à 05:15

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

Tu devrais avoir je pas c

[i for c, i in enumerate(a[-3:], -3)] cela vous donnera [3, 4, 5]

0
toRex 13 janv. 2021 à 05:30
65695917