python - 如何在python中转换字典中的多个列表
问题描述
# Create a dictionary out of below inputs
lst1 = ['emp1', 'emp2', 'emp3']
emp_key = ['e_name', 'e_id', 'e_sal']
emp1_val = ['John', 'SG101', '$10,000']
emp2_val = ['Smith', 'SG102', '$9,000']
emp3_val = ['Peter', 'SG103', '$9,500']
# Expected Output:-
{'emp1':{'e_name':'John', 'e_id':'SG101', 'e_sal':$10,000},
'emp2':{'e_name':'Smith', 'e_id':'SG102', 'e_sal':$9,000},
'emp3':{'e_name':'Peter', 'e_id':'SG103', 'e_sal':$9,500}}
我需要用 zip 尝试过这样的输出,但它不起作用,请建议最好的方法。
提前致谢
解决方案
您可以使用嵌套列表推导,使用两次dict
以上zip
来形成嵌套字典:
lst1 = ['emp1', 'emp2', 'emp3']
emp_key = ['e_name', 'e_id', 'e_sal']
emp1_val = ['John', 'SG101', '$10,000']
emp2_val = ['Smith', 'SG102', '$9,000']
emp3_val = ['Peter', 'SG103', '$9,500']
result = dict(zip(lst1, [dict(zip(emp_key, e)) for e in [emp1_val, emp2_val, emp3_val]]))
print(result)
输出:
{
'emp1': {'e_name': 'John', 'e_id': 'SG101', 'e_sal': '$10,000'},
'emp2': {'e_name': 'Smith', 'e_id': 'SG102', 'e_sal': '$9,000'},
'emp3': {'e_name': 'Peter', 'e_id': 'SG103', 'e_sal': '$9,500'}
}
推荐阅读
- javascript - 我们如何在 jquery 中对“This”事件应用条件?
- angular - 如何处理中的键盘事件
我用 div 创建了一个虚拟滚动列表。使用事件绑定,我可以附加动作来单击 dblclick 事件。我想绑定一个像 KeyPress 这样的键盘事件来检测回车键并模仿鼠标点击的动作。无论我尝试什么,事件都不会触发。我究竟做错了什么?
<cdk-virtual-sc
- arduino - How to control an led from Thingspeak server using SIM900A and Arduino?
- php - PHP中的多个进程正在使用相同的变量值?
- r - 对于每组,每周,在 R 中找到前 X 周的观察值总和
- ignite - Apache Ignite 节点的最大内存大小是多少?
- delphi - 如何在 Delphi 调试期间查看通用 tList
- python - importError pdfkit 与 docker 要求 wkhtmltopdf
- python - 如何将 json 值传递给 highchart 热图
- html - Angular,如何为 iframe 源使用变量?