Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Python] Copie di variabili di tipo Dictonary

    Ciao ragazzi,
    so che non c'è molta gente che capisce di Python qui in giro, ma io ci riprovo lo stesso.

    Ho un problema con la struttura dati Dictonary (mappa): se faccio una copia di una mappa su un'altra variabile (per es. a = b oppure a = b.copy, dove a e b sono mappe) mi capita che se scorro una delle due con un ciclo for e vengono applicati dei cambiamenti a quella mappa, al termine del ciclo anche l'altra mappa subisce gli stessi cambiamenti. :master:
    Sapete dirmi perché e come risolvere il problema?

    Grazie!!
    "Na' sedia te vojo tirà!"

  2. #2
    un problema simile c'è per le liste:
    se copio una lista con = alla modifica della lista cambia anche la copia... con le liste devi copiare con
    copia =lista[:]
    prova a fare qualcosa di simile

  3. #3
    no non si puo' fare dict[:] solamente con le liste.
    Fai cosi':
    from copy import deepcopy
    a = deepcopy(b)

  4. #4
    in python ogni variabile e' passata per riferimento ...


    codice:
    def copyList(x=[]):
    	return x[:]
    	
    a = ['a', 'b', 'c']
    b = copyList(a)
    a[2] = 1
    print b
    eccoti la copia di lista senza import




    P.S. ... anche cosi' :


    codice:
    copyList = lambda x=[]: x[:]
    b = copyList(a)

    editato:
    o piu' sempicemente cosi' :master:

    copyList = lambda x: x[:]
    b = copyList(a)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    ehm ... per il dizionario invece usa il deepcopy
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.