2012-06-22 15 views
8

Eventuali duplicati:
Good Primer for Python Slice Notation
reverse a string in PythonPerché "[:: - 1]" restituisce una lista inversa in Python?

Ho visto questa coltura sintassi in pochi frammenti di codice che ho visto ultimamente, e io sono curioso di sapere cosa lo fa. Se ho my_list = [1,2,3,4,5] e eseguo my_list[::-1], mi viene data una lista con gli elementi invertiti [5,4,3,2,1]. Qualcuno potrebbe spiegarmi come funziona e mostrare la differenza tra la notazione [:] e [::]? O almeno riferirmi a una risorsa che lo fa.

Sono sicuro che se avessi un buon libro Python ci sarebbe, ma non lo faccio. Ed è impossibile cercare su Google qualcosa di simile dal momento che lo [::] viene ignorato. Grazie!

+2

ci sono molti post su questo .. Una volta ho chiesto la stessa cosa e mi è stato detto di cercare .. e ho trovato un gruppo che lo spiegava. – Levon

+1

[Questo per esempio] (http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation) e [questo uno] (http://stackoverflow.com/questions/766141/ reverse-a-string-in-python? lq = 1) – Levon

+1

Grazie, Levon! Questo è esattamente quello che stavo cercando. –

risposta

22

Non c'è differenza tra [:] e [::].

Ma [::-1] fa qualcos'altro: ha un parametro di passaggio negativo. L'assenza dei parametri start e stop indica l'array completo. Il parametro step negativo significa che i dati vengono acquisiti in ordine inverso, dalla fine all'inizio.

+0

@pawan kumar Grazie per la tua modifica. Ma la domanda a cui ti sei collegato è già collegata in cima alla domanda. – glglgl

Problemi correlati