switch key and values in a dict of lists

前端 未结 3 481
孤街浪徒
孤街浪徒 2021-01-26 18:50

Hello Stackoverflow people,

I have a nested dictionary with lists as values and I want to create a dict where all the list entries get their corresponding key as value.<

相关标签:
3条回答
  • 2021-01-26 19:17

    Try this

    dict1 = {"A":[1,2,3], "B":[4,5,6], "C":[7,8,9]}
    dict2= {}
    for keys,values in dict1.items():
        for i in values:
            dict2[i]=keys
    print(dict2)
    

    Output

    {1: 'A', 2: 'A', 3: 'A', 4: 'B', 5: 'B', 6: 'B', 7: 'C', 8: 'C', 9: 'C'}
    

    Hope it helps

    0 讨论(0)
  • 2021-01-26 19:23

    Use dictionary comprehension:

    d = {'a': 'b', 'c': 'd', 'e': 'f'}
    d2 = dict((v1, k) for k, v in d.items() for v1 in v)  # Here is the one-liner
    
    0 讨论(0)
  • 2021-01-26 19:24

    assuming your key: value dictionary contains list as a value and using dict comprehension.

    Using a second loop to iterate over the list present in original dictionary.

    {item: key for key, value in dict1.items() for item in value}
    
    0 讨论(0)
提交回复
热议问题