copy.copy()
e copy.deepcopy()
copia il riferimento per un oggetto immutabile come una tupla. Come posso creare una copia duplicata del primo oggetto immutabile in una posizione di memoria diversa?Come posso copiare un oggetto immutabile come tupla in Python?
risposta
Aggiungere la tupla vuota:
>>> a = (1, 2, 3)
>>> a is a+tuple()
False
Concatenazione tuple restituisce sempre una nuova tupla distinto, anche quando il risultato risulta essere uguale.
Questo suona come un dettaglio di implementazione piuttosto che una garanzia. –
@DietrichEpp che è abbastanza vero, e realisticamente 'tuple (list (a))' è allo stesso modo (poiché nulla interrompe 'tuple .__ new__', ad esempio, mantenendo deboli rimandi a tutte le tuple che ha già creato). Esiste probabilmente * no * modo assoluto di avere due tuple distinte ma uguali se contengono solo elementi immutabili. – lvc
Interessante. – wim
Stai cercando deepcopy
.
from copy import deepcopy
tup = (1, 2, 3, 4, 5)
put = deepcopy(tup)
Certamente, l'ID di queste due tuple punterà allo stesso indirizzo. Dato che una tupla è immutabile, non c'è davvero alcun motivo per crearne un'altra copia esattamente uguale. Si noti tuttavia che le tuple possono contenere elementi mutevoli a loro, e deepcopy/id si comporta come si prevede che sarebbe:
from copy import deepcopy
tup = (1, 2, [])
put = deepcopy(tup)
tup[2].append('hello')
print tup # (1, 2, ['hello'])
print put # (1, 2, [])
Gli ID sono gli stessi per il primo caso, e diversi per il secondo caso, le tuple sono ben progettate! –
provare questo:
tup = (1,2,3)
nt = tuple(list(tup))
E penso di aggiungere una tupla vuota è molto meglio .
aggiungere una tupla vuota è molto meglio. –
Cosa intendi con "E penso"? – Mike
E penso che aggiungere una tupla vuota sia molto meglio. –
- 1. Come convertire la tupla in stringa in un oggetto tupla?
- 2. Come posso copiare in profondità un oggetto DateTime?
- 3. Come posso clonare/copiare un'istanza di un oggetto in CoffeeScript?
- 4. Come riparare un: TypeError oggetto 'tupla' non supporta l'assegnazione voce
- 5. Cambiare un oggetto immutabile F #
- 6. Python: come cambiare (ultimo) elemento di tupla?
- 7. Come creare una tupla di una tupla vuota in Python?
- 8. Come posso copiare una stringa Python?
- 9. Hashing un dizionario immutabile in Python
- 10. Come copiare un oggetto con NHibernate
- 11. Oggetto effettivamente immutabile
- 12. Come funziona il confronto tupla in Python?
- 13. come incrementare la tupla interna in python?
- 14. Come convertire un oggetto di classe personalizzato in una tupla in Python?
- 15. Posso contare sull'ordine di essere conservato in una tupla Python?
- 16. Come posso convertire un oggetto datetime Python in UTC?
- 17. Come posso ottenere un valore da un oggetto specifico da una mappa js immutabile?
- 18. Come copiare un buffer bytearray python?
- 19. Come posso trovare le posizioni di un oggetto in un elenco di elenchi Python?
- 20. pitone tupla è immutabile - e allora perché posso aggiungere elementi ad esso
- 21. Come verificare se una tupla contiene un elemento in Python?
- 22. TeamCity - Come posso copiare un VCS Root?
- 23. Come posso copiare un blocco vettoriale nell'altro
- 24. Come copiare una classe python?
- 25. Come copiare un'immagine remota in python?
- 26. Come posso copiare una variabile in tensorflow
- 27. Come posso copiare ** kwargs in self?
- 28. Come posso copiare in profondità un vettore in J2ME/BlackBerry?
- 29. Come cambiare una tupla in array in Python?
- 30. Hibernate CompositeUserType per oggetto immutabile
'oldtuple [:]' o 'newtuple = tuple (oldtuple)' – Eevee
perché è necessario copiarlo comunque, se è immutabile allora sei sicuro che un riferimento non è abbastanza buono? – wim
@wim Vero. Mi aspettavo che qualcuno lo chiedesse. Ma c'è ancora un modo? –