循环和压缩字典并列出新的列表字典

时间:2021-04-09 17:29:05

标签: python list dictionary zip

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

提供此字典:

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

你知道我该怎么做吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的东西吗?

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']}

答案 1 :(得分:0)

你可以试试:

>>> 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']}