Nel mio codice di esempio di seguito, è effettivamente richiesto il contatore = 0 oppure esiste un modo migliore, più Python, per accedere a un contatore di loop? Ho visto alcuni PEP relativi ai contatori di loop, ma erano differiti o rifiutati (PEP 212 e PEP 281).Contatore loop Python in un ciclo for
Questo è un esempio semplificato del mio problema. Nella mia vera applicazione questo è fatto con la grafica e l'intero menu deve essere ridipinto ogni fotogramma. Ma questo lo dimostra in un modo semplice di testo che è facile da riprodurre.
Forse dovrei anche aggiungere che sto usando Python 2.5, anche se sono ancora interessato se esiste un modo specifico per 2.6 o superiore.
# Draw all the options, but highlight the selected index
def draw_menu(options, selected_index):
counter = 0
for option in options:
if counter == selected_index:
print " [*] %s" % option
else:
print " [ ] %s" % option
counter += 1
options = ['Option 0', 'Option 1', 'Option 2', 'Option 3']
draw_menu(option, 2) # Draw menu with "Option2" selected
Quando viene eseguito, esso emette:
[ ] Option 0
[ ] Option 1
[*] Option 2
[ ] Option 3
si può semplicemente utilizzare la proprietà length matrice invece del per in loop metodo, per i
Jim
possibile duplicato di [Accesso all'indice in Python per cicli] (http://stackoverflow.com/questions/522563/accessing-the-index-in-python-for-loops) –