字典转字典 Python
我刚开始学习Python,现在正在处理数据字典。
我想创建一个字典里面再嵌套一个字典,像这样:
dates = {201101:{perf:10, reli:20, qos:300}, 201102:{perf:40, reli:0, qos:30}}
我已经有了键(key),现在需要为初始化创建默认值。比如:
{201101:{perf:0, reli:0}, 201102:{perf:0, reli:0}}
我该如何初始化并更新特定的字典呢?比如要把dates[201101][perf]的值改成10。
谢谢!
4 个回答
0
如果你在处理运行时的值时,可以使用setdefault(i,[])或{},而不是简单的[]。这样做可以让你动态地创建嵌套的字典,而不是只有平面的字典。
举个例子:
dict = {}
for i in range(0,10):
dict.setdefault(i,{})
# Only now you can use the nested dict of level 1
for j in range(0,10):
dict[i][j] = j
这只是一个例子,你可以动态地创建任意深度的字典,并且里面可以包含不同类型的元素,比如列表或其他字典。
1
你第一个字典:
dates={201101:{'perf':0, 'reli':0}, 201102:{'perf':0, 'reli':0}}
更新键值的一种方法:
date[201101]={'perf': 10, 'reli':20, 'qos': 300}
1
首先,你需要用一个:
把键和它们的值分开。其次,你的键必须是字符串或者数字。举个例子。
dates = { 201101: {'perf': 10, 'reli':20, 'qos': 300} }
2
首先,
dates = {201101{perf=10, reli=20, qos=300}, 201102{perf=40, reli=0, qos=30}}
这不是一个有效的Python字典。这个才是:
dates = {201101: {'perf':10, 'reli':20, 'qos':300}, 201102:{'perf':40, 'reli':0, 'qos':30}}
一旦你创建了一个字典的字典,如下所示:
dates = {201101:{'perf':0, 'reli':0}, 201102:{'perf':0, 'reli':0}}
你可以通过以下方式来更新它:
dates[201101]['perf'] = 10
示例:
>>> dates = {201101:{'perf':0, 'reli':0}, 201102:{'perf':0, 'reli':0}}
>>> dates[201101]['perf'] = 10
>>> dates
{201101: {'reli': 0, 'perf': 10}, 201102: {'reli': 0, 'perf': 0}}