ключ переключения и значения в списках - PullRequest
0 голосов
/ 29 января 2019

Hello Stackoverflow people,

У меня есть вложенный словарь со списками в качестве значений, и я хочу создать диктовку, в которой все записи списка получают соответствующий ключ в качестве значения.

Пример времени!

# what I have
dict1 = {"A":[1,2,3], "B":[4,5,6], "C":[7,8,9]}

# what I want
dict2 = {1:"A", 2:"A", 3:"A", 4:"B", 5:"B", 6:"B", 7:"C", 8:"C", 9:"C"}

Любая помощь будет высоко ценится!

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Используйте словарь:

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 голосов
/ 29 января 2019

при условии, что ваш key: value словарь содержит список в качестве значения и использование dict-понимания.

Использование второго цикла для перебора списка, присутствующего в исходном словаре.

{item: key for key, value in dict1.items() for item in value}
0 голосов
/ 29 января 2019

Попробуйте это

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)

Вывод

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

Надеюсь, это поможет

...