循环并压缩字典和列表到一个新的列表字典中

loop and zip dictionary and list into a new dictionary of lists

如何对列表和字典进行双重循环

提供了这个字典:

tabs = {
        'RESULT' : 'result_out',
        'INFO'   : 'info_out',
        'LOGGING'    : 'loggging_out',
        }

还有这个列表:

li = [11,22,33]

我想将字典映射到列表以获得此结果:

tabs = {
        'RESULT' : [11,'result_out'],
        'INFO'   : [22,'info_out'],
        'LOGGING'    : [33,'loggging_out'],
        }

自从:

list(zip(list(tabs.keys()),list(tabs.values()),icons))

等于:

[('d', 'a', 1), ('e', 'b', 2), ('f', 'c', 3)]

我认为这会成功:

{key:[icons[i],value] for key,value,i in zip(list(tabs.keys()),list(tabs.values()),icons)}

但这给出了:

IndexError: list index out of range

你知道我该怎么做吗?

谢谢

你可以尝试这样的事情吗?

count = 0
for i in tabs:
    tabs[i] = [li[count],tabs[i]]
    count += 1

输出:

{'RESULT': [11, 'result_out'], 'INFO': [22, 'info_out'], 'LOGGING': [33, 'loggging_out']}

你可以试试:

>>> tabs = {
...         'RESULT' : 'result_out',
...         'INFO'   : 'info_out',
...         'LOGGING'    : 'loggging_out',
...         }
>>> li = [11,22,33]
>>>
>>> {a : [c, b] for (a, b), c in zip(tabs.items(), li)}
{'RESULT': [11, 'result_out'], 'INFO': [22, 'info_out'], 'LOGGING': [33, 'loggging_out']}