2012-10-31 3 views
4

Je souhaite ajouter automatiquement des clés à un dictionnaire Python si elles n'existent pas déjà. Par exemple,Ajouter automatiquement la clé à Python dict

a = "a" 
b = "b" 
c = "c" 

dict = {} 
dict[a][b] = C# doesn't work because dict[a] doesn't exist 

Comment puis-je créer automatiquement des clés si elles n'existent pas?

+0

egidra = EGIdrA = SC2? +1 sur le nom seul – RocketDonkey

+0

@RocketDonkey yup haha ​​ – egidra

Répondre

23

Utilisez un collections.defaultdict:

def recursively_default_dict(): 
    return collections.defaultdict(recursively_default_dict) 

my_dict = recursively_default_dict() 
my_dict['a']['b'] = 'c' 
+1

Je suis trop lent le matin +1 –

+0

'recursively_default_dict = lambda: defaultdict (récursivement_default_dict)' –

+1

@ X.Jacobs: "La clarté est meilleure que la densité. La lisibilité compte. "- [Le ​​zen de Python] (https://www.python.org/dev/peps/pep-0020/) – icktoofay

Questions connexes