2014-06-09 2 views
-2

Я новичок в Python, в настоящее время я работаю с словарем данных. Я ожидаю, чтобы создать Dict в Словаре так:Dict to Dict Python

dates = {201101:{perf:10, reli:20, qos:300}, 201102:{perf:40, reli:0, qos:30}} 

У меня уже есть ключи, и я должен созданные значения по умолчанию для инициализации. то есть:

{201101:{perf:0, reli:0}, 201102:{perf:0, reli:0}}

как сделать инициацию и обновить specifict Dict. т.е. даты [201101 [perf]] = 10. Спасибо!

+0

Что такое '201101 {perf = 10, reli = 20, qos = 300}' – thefourtheye

+0

@thefourtheye извините, моя ошибка на нем – indi60

ответ

1

Для начала

dates = {201101{perf=10, reli=20, qos=300}, 201102{perf=40, reli=0, qos=30}} 

не является допустимым питон ДИКТ. Это:

dates = {201101: {'perf':10, 'reli':20, 'qos':300}, 201102:{'perf':40, 'reli':0, 'qos':30}} 

После того, как вы инициировали Dict в Словаре как:

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}} 
+0

@shaktiman: спасибо за ответ – indi60

1

Во-первых, вам необходимо отделить ключи от их значений с помощью :. Во-вторых, ваши ключи должны быть строками или цифрами. Пример.

dates = { 201101: {'perf': 10, 'reli':20, 'qos': 300} } 
1

Ваш первый dict:

dates={201101:{'perf':0, 'reli':0}, 201102:{'perf':0, 'reli':0}} 

Один из способов обновить значение ключа:

date[201101]={'perf': 10, 'reli':20, 'qos': 300} 
0

Другой метод, который вы должны были бы в случае значений времени выполнения является SetDefault (я, []) или {} вместо []. Это позволяет динамически создавать вложенные словари вместо «плоских».

Например:

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 

Это просто пример, вы можете динамически создавать Dict любой глубоко и с разнородными элементами, как список или другой Dict.