Je voudrais pouvoir faire un dictionnaire Python avec des chaînes comme des clés et des ensembles de chaînes comme valeurs. E.g .: { "crackers" : ["crunchy", "salty"] }
Ce doit être un ensemble, pas une liste.Dictionnaire Python qui mappe des chaînes à un ensemble de chaînes?
Cependant, quand je les opérations suivantes:
word_dict = dict()
word_dict["foo"] = set()
word_dict["foo"] = word_dict["foo"].add("baz")
word_dict["foo"] = word_dict["foo"].add("bang")
Je reçois:
Traceback (most recent call last):
File "process_input.py", line 56, in <module>
test()
File "process_input.py", line 51, in test
word_dict["foo"] = word_dict["foo"].add("bang")
AttributeError: 'NoneType' object has no attribute 'add'
Si je fais ceci:
word_dict = dict()
myset = set()
myset.add("bar")
word_dict["foo"] = myset
myset.add("bang")
word_dict["foo"] = myset
for key, value in word_dict:
print key,
print value
Je reçois:
Traceback (most recent call last):
File "process_input.py", line 61, in <module>
test()
File "process_input.py", line 58, in test
for key, value in word_dict:
ValueError: too many values to unpack
Des astuces pour contraindre Python à faire ce que je veux? Je suis un utilisateur de Python intermédiaire (ou alors je pensais, jusqu'à ce que je suis tombé sur ce problème.)
Merci. Bien sûr, duh. –