Python 集合字典
Python dictionaries of sets
我有字典
boxes {
'box 1' : 'apples',
'box 2' : 'mangoes',
'box 3' : 'oranges',
'box 4' : 'mangoes'
}
我需要将这本词典重新组合为
fruits {
'apples' : {'box 1' },
'mangoes' : {'box 2', 'box 4'},
'oranges' : {'box 3'}
}
我试过了:
fruits = {}
for k, v in boxes.items():
if (v in fruits):
fruits[v].add(k)
else:
fruits[v] = set()
fruits[v].add(k)
我收到此错误:TypeError: unhashable type: 'set',许多其他尝试也无效。
请指导!谢谢
这是使用 setdefault 的一个很好的例子,如下所示:
boxes = {
'box 1' : 'apples',
'box 2' : 'mangoes',
'box 3' : 'oranges',
'box 4' : 'mangoes'
}
fruits = dict()
for k, v in boxes.items():
fruits.setdefault(v, set()).add(k)
print(fruits)
输出:
{'apples': {'box 1'}, 'mangoes': {'box 2', 'box 4'}, 'oranges': {'box 3'}}
我有字典
boxes {
'box 1' : 'apples',
'box 2' : 'mangoes',
'box 3' : 'oranges',
'box 4' : 'mangoes'
}
我需要将这本词典重新组合为
fruits {
'apples' : {'box 1' },
'mangoes' : {'box 2', 'box 4'},
'oranges' : {'box 3'}
}
我试过了:
fruits = {}
for k, v in boxes.items():
if (v in fruits):
fruits[v].add(k)
else:
fruits[v] = set()
fruits[v].add(k)
我收到此错误:TypeError: unhashable type: 'set',许多其他尝试也无效。 请指导!谢谢
这是使用 setdefault 的一个很好的例子,如下所示:
boxes = {
'box 1' : 'apples',
'box 2' : 'mangoes',
'box 3' : 'oranges',
'box 4' : 'mangoes'
}
fruits = dict()
for k, v in boxes.items():
fruits.setdefault(v, set()).add(k)
print(fruits)
输出:
{'apples': {'box 1'}, 'mangoes': {'box 2', 'box 4'}, 'oranges': {'box 3'}}