Considera una lista >>> l=[1,2,3]
.Python: Perché usare "lista [:]" quando "lista" si riferisce alla stessa cosa?
Qual è il vantaggio dell'utilizzo di >>> l[:]
quando >>> l
stampa la stessa cosa di ex?
Grazie.
Considera una lista >>> l=[1,2,3]
.Python: Perché usare "lista [:]" quando "lista" si riferisce alla stessa cosa?
Qual è il vantaggio dell'utilizzo di >>> l[:]
quando >>> l
stampa la stessa cosa di ex?
Grazie.
Crea una copia (superficiale).
>>> l = [1,2,3]
>>> m = l[:]
>>> n = l
>>> l.append(4)
>>> m
[1, 2, 3]
>>> n
[1, 2, 3, 4]
>>> n is l
True
>>> m is l
False
+1: Sono ** non ** la stessa cosa. –
+20 per qualcosa di base (che è stato già proposto prima qui, è stato spiegato in altre centinaia di domande che lo utilizzano, è nel tutorial ufficiale e probabilmente nella maggior parte degli altri, ecc.) ... – delnan
@delnan: Questo è il magia di SO ;-) – user225312
l[:]
si chiama fetta di notazione. Può essere utilizzato per estrarre solo alcuni degli elementi nell'elenco, ma in questo caso i limiti vengono omessi in modo da restituire l'intera lista, ma a causa della sezione, questo sarà effettivamente un riferimento a un elenco diverso da l
che contiene gli stessi elementi Questa tecnica viene spesso utilizzata per creare copie o cloni superficiali.
Cosa ti fa pensare che sono la stessa cosa? Hai usato la funzione 'id()' per confermarlo? –
Hanno stampato lo stesso valore. Questo mi ha fatto pensare così. Mi chiedevo perché perdere tempo scrivendo caratteri extra quando otteniamo lo stesso risultato senza [:]. Mai saputo di 'id()'. Grazie per la segnalazione. – Dharmit
@Dharmit: Va bene, non essere intimidito! Stai imparando ed è ovvio porre questa domanda. E 'stata una buona domanda. Cominciamo da qualche parte, per non dimenticare che anche noi facevamo queste domande quando stavamo imparando :) – user225312