2017-08-18 7 views
0

J'ai un code comme suit:Énumérer la taille d'une liste en arrière, mais gardez la liste aller vers l'avant

amount_of_episodes = len(episodes_from_user_show) 
for x in episodes_from_user_show: 
    print("[{0}] Episode {1}: {2}".format(amount_of_episodes, x.episode_number, 
              x.name)) # Prints the available list of episodes. 
    amount_of_episodes -= 1 

Ce qu'il a fait est qu'il prend la longueur d'une liste, elle effectue une itération vers l'arrière jusqu'à il atteint 0 et le nom de l'épisode et le numéro de l'api que j'utilise sont également en cours d'impression.

Donc ce que je voulais savoir, c'est s'il y avait une façon plus lisible de le faire. Quelque chose comme utiliser enumerate qui peut afficher la taille de la liste en arrière mais le contenu de la liste va en avant (si cela a du sens)?

+0

Vous pouvez faire 'pour i, x dans enumerate (episodes_from_user_show)' et 'le format (amount_of_episodes - i, ...) '. – ekhumoro

Répondre

1

Une façon simple de le faire est de simplement imprimer len(values) - index:

shows = [{'id': 1, 'name': 'show_1'},{'id': 2, 'name': 'show_2'}] 
for idx, show in enumerate(shows): 
    print("[{}] Episode {}: {}".format(len(shows) - idx, show['id'], show['name'])) 

sortie:

[2] Episode 1: show_1 
[1] Episode 2: show_2