为字典中的多个键分配相同的值

Assign the same value to multiple keys in a dictionary

我希望我的字典看起来像这样:

{'A': {('B','C'): 'D'}}    

我目前使用的代码似乎无法实现这个结果。

dict1 = {}
with open('foo.csv') as f:
    reader = csv.DictReader(f)
    for row in reader:
        for key in ['B','C']:
            dict1.setdefault(row['A'], {}).update({row[key]: row['D']})

目前,我得到这样的结果:

{'A': {'B': 'D','C': 'D'}}

基本上,我希望将 B 和 C 表示为以 D 为值的键。

我在这里做错了什么?有人可以帮我更正这段代码吗?

您可以将这两项放在您想要的位置,在元组中:

dict1 = {}
with open('foo.csv') as f:
    reader = csv.DictReader(f)
    for row in reader:
         dict1.setdefault(row['A'], {}).update({(row['B'], row['C']): row['D']})
    #                                               ^         ^