簡體   English   中英

清單中項目的處理

[英]Processing of Items from a list

考慮我有名為“ tenant_id_dict”的字典,其條目如下:

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

那是tenant_id和instance_name的組合。

現在,我需要根據需要使用tenant_id和instance_name。

考慮以下代碼:

for tenants,instances in tenant_id_dict.iteritems():

        compute_value_for_instance = ck.reports.get_total(tenant_id=tenants, service='compute', instance_name=instances)
        print compute_value_for_instance

在這里,我需要動態處理租戶和instance_name的值。

但是在上面的代碼中,由於實例具有值列表,因此我無法正確獲取結果。

我需要處理到列表中的最后一項。

有人讓我知道這里處理值的方式。

您使用list初始化了defaultdit list是可迭代的,並且是每個鍵的值。 因此,您需要如下迭代這些值(即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_name=single_ins)
                print compute_value_for_instance

工作演示

from collections import defaultdict
#Create a dummy defaultdict with list values
d = defaultdict(list)

for i in range(5):
    d[i].append(i+100)
    d[i].append(i+200)
    d[i].append(i+300)


#Experiment
for k,v in d.iteritems():
    for single_vale in v:#Here v is a list
        print str(k)+str(single_vale)
print d

輸出 -

0100
0200
0300
1101
1201
1301
2102
2202
2302
3103
3203
3303
4104
4204
4304
defaultdict(<type 'list'>, {0: [100, 200, 300], 1: [101, 201, 301], 2: [102, 202, 302], 3: [103, 203, 303], 4: [104, 204, 304]})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM