为了账号安全,请及时绑定邮箱和手机立即绑定

为每个字典键值提供键

为每个字典键值提供键

撒科打诨 2021-11-09 11:04:57
我正在运行此代码以将三个列表组合成一个字典,其中第一个列表是键。list_dict = {x: (y, z) for x, y, z in zip_longest(order_instance, final_mem, final_disk)}pprint(list_dict)返回这个...{'instanceIndex:0': ('212590592', '192389120'), 'instanceIndex:1': ('5971968', '13963264'), 'instanceIndex:2': ('93331456', '216592384')}我希望能够格式化这个字典以显示 y 和 z 值的键,从而更容易输入到 SQL 数据库中。像这样的东西。{'instanceIndex:0': ((Memory: '212590592'),                      (Disk: '192389120')), 'instanceIndex:1': ((Memory: '5971968'),                      (Disk: '13963264')), 'instanceIndex:2': ((Memory: '93331456'),                      (Disk: '216592384'))}
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您可以直接修改您的 dict-comprehension 以匹配您选择存储值的任何格式。在您的情况下,您的键值格式类似于dict离子 - 所以使用它。


list_dict = {x: {'Memory':y, 'Disk':z} for x, y, z in zip_longest(order_instance, final_mem, final_disk)}

#               ^^^^^^^^^^  ^^^^^^^^ ^


查看完整回答
反对 回复 2021-11-09
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您可以使用命名元组collections.namedtuples存储您的数据:


from itertools import zip_longest

from collections import namedtuple

from pprint import pprint


inst = ["i1","i2","i3"]

memo = ["1","2","3"]

disk = ["d1","d2","d3"] 


Data = namedtuple("Data", ["Memory","Disk"])


k = {x: Data(m,d) for x, m, d in zip_longest(inst,memo,disk)}


pprint(k) 

输出:


{'i1': Data(Memory='1', Disk='d1'),

 'i2': Data(Memory='2', Disk='d2'),

 'i3': Data(Memory='3', Disk='d3')}

您可以通过索引或名称访问命名元组:


print( k["i1"].Memory)   # 1 

print( k["i1"][1])       # d1


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号