字典转字典 Python

-2 投票
4 回答
1796 浏览
提问于 2025-04-18 09:05

我刚开始学习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}}

撰写回答