字典和列表值处理

2024-09-27 00:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码,它将产生如下dict:

defaultdict(<type 'list'>, {u'b0116ce25cad4106becbbddfffa61a1c': [u'demo_ins1', u'2530.0'], u'1578f81703ec4bbaa1d548532c922ab9': [u'new_ins_1', u'1750.0', u'new_tenant_ins', u'2520.0']})

代码:

# inilialize necessary dict
dict_compute = defaultdict(list)

for tenants,instances in tenant_id_dict.iteritems():

        for single_ins in instances:
                compute_value_for_instance = ck.reports.get_total(tenant_id=tenants, service='compute', instance_id=single_ins)
                dict_compute[tenants].append(single_ins)
                dict_compute[tenants].append(compute_value_for_instance)
                print dict_compute

字典是租户id、实例名称和成本的组合

我需要保持彼此之间的关系

我需要结果如下:

{u'b0116ce25cad4106becbbddfffa61a1c': [u'demo_ins1' : u'2530.0']

即:对于每个租户,它应该根据需要显示实例名称(demo)和成本(2530.0)

同样需要一个更好的方法,哪一个是最好的列表或目录

如果需要,我应该可以提取和处理

我对任何事情(单子或口述)都没问题,我只需要保持一段关系

有人看看,让我知道解决方案或建议


Tags: instance代码idfordemodictlistcompute
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:39

最好尝试初始化一个列表并在其上附加字典,如下所示-

from collections import defaultdict
# inilialize necessary dict
dict_compute = defaultdict(list)

for tenants,instances in tenant_id_dict.iteritems():
    for single_ins in instances:
        compute_value_for_instance = ck.reports.get_total(tenant_id=tenants, service='compute', instance_id=single_ins)
        dict_compute[tenants].append({single_ins:compute_value_for_instance})
        print dict_compute

编辑-如果您需要一行代码,那么下面的代码就可以工作了,无需使用defaultdict-

dict_compute = {tenants:[{single_ins:ck.reports.get_total(tenant_id=tenants, service='compute', instance_id=single_ins)} for single_ins in instances] for tenants,instances in tenant_id_dict.iteritems()}

相关问题 更多 >

    热门问题