[英]How do I create multiple dictionaries based on nested for loops?
這是我想要的輸出:
level1 = {'value1':0, 'value2':0, 'value3':0}
level2 = {'value1':0, 'value2':0, 'value3':0}
level3 = {'value1':0, 'value2':0, 'value3':0}
level3 = {'value1':0, 'value2':0, 'value3':0}
注意:Value1,Value2和Value3都是同一件事。 我用它來填充字典。
這是我正在嘗試的:
for x in range (1,6):
level = 'level%d' % x
for iteration in range(1, 4):
value = 'value%d' % iteration
level = {}
level['value'] = 0
您是否正在嘗試這樣的事情?:
dic={}
for x in range (1,6):
level = 'level%d' % x
dic[level] = {}
for iteration in range(1, 4):
value = 'value%d' % iteration
dic[level][value] = 0
print dic
輸出:
{'level1': {'value1': 0, 'value2': 0, 'value3': 0},
'level2': {'value1': 0, 'value2': 0, 'value3': 0},
'level3': {'value1': 0, 'value2': 0, 'value3': 0},
'level4': {'value1': 0, 'value2': 0, 'value3': 0},
'level5': {'value1': 0, 'value2': 0, 'value3': 0}}
所以你想要像這樣的東西:
keys = ('value1','value2','value3')
{k:dict.fromkeys(keys,0) for k in range(1,4)}
演示:
>>> keys = ('value1','value2','value3')
>>> {k:dict.fromkeys(keys,0) for k in range(1,4)}
{1: {'value3': 0, 'value2': 0, 'value1': 0}, 2: {'value3': 0, 'value2': 0, 'value1': 0}, 3: {'value3': 0, 'value2': 0, 'value1': 0}}
當然,使用順序整數作為鍵,您可以考慮從0開始索引,並使用列表推導:
[dict.fromkeys(keys,0) for _ in range(3)]
您可以將for
循環嵌套在嵌套的字典理解中,並創建一個兩層的嵌套字典,如下所示:
from pprint import pprint
nested_dict = {'level%d' % level:
{'value%d' % value: 0 for value in range(1, 4)}
for level in range(1, 6)}
pprint(nested_dict)
輸出:
{'level1': {'value1': 0, 'value2': 0, 'value3': 0},
'level2': {'value1': 0, 'value2': 0, 'value3': 0},
'level3': {'value1': 0, 'value2': 0, 'value3': 0},
'level4': {'value1': 0, 'value2': 0, 'value3': 0},
'level5': {'value1': 0, 'value2': 0, 'value3': 0}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.