2016-06-05 6 views
5

Volevo solo sapere la differenza tra reverse() e [:: - 1] in termini di riferimenti.Differenza tra inverso e [:: - 1]

Per esempio

p = [1,2,3] 
x = p[::-1] 
print(x) 
print(p) 

p.reverse() 
print(p ==p[::-1]) 
print(p == x) 

quindi uscite sono

[3,2,1] 
[1,2,3] 
False 
True 
+3

'reverse()' inverte l'elenco sul posto, '[:: - 1]' lo clona in ordine inverso. –

+1

Il tuo output non dimostra la differenza? –

+1

Si noti che se non si ha effettivamente bisogno di un elenco con i valori nell'ordine inverso (solo un iterabile), l'uso della funzione incorporata 'invertita' può essere più efficiente. Qualcosa come 'for value in reverse (p)' non aggiunge una quantità significativa di overhead (se confrontato con qualsiasi altra iterazione). 'p [:: - 1]' e 'p.reverse()' sono entrambi 'O (N)', ma 'invertito (p)' è 'O (1)'. Ovviamente iterando su di esso è 'O (N)', ma così sta iterando su 'p' senza inversione. – Blckknght

risposta

6

reverse inverte l'elenco sul posto, vedere the manual, mentre [::-1] dà una nuova lista in ordine inverso.

Prova print(p) dopo aver chiamato p.reverse(), vedrai la differenza.

+0

@ M.Jones Se ritieni che questa risposta abbia contribuito a risolvere il problema, contrassegnalo come "accettato" facendo clic sul segno di spunta verde. Ciò aiuterà la comunità a mantenere l'attenzione sulle domande senza risposta. – Lahiru

Problemi correlati