如何对列表和字典进行双重循环
提供此字典:
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
你知道我该怎么做吗?
谢谢
答案 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']}