2014-01-26 27 views

回答

3
dic = {'Sally':['1346','A','April', {'1346': ('week', 6)}], 
     'Annie': ['1347', 'A', 'April', {'1346': ('week', 5)}], 
     'Marie': ['0', 'Absent', 'Fall', {}]} 

for value in dic.values(): 
    for element in value: 
     if isinstance(element, dict) and '1346' in element: 
      element['1346'] = ('month',6) 

,如果這是Python 2中,我會用dic.itervalues()代替dic.values()代替嵌套的字典裏鍵。

而這裏的結果:

>>> import pprint 
>>> pprint.pprint(dic) 
{'Annie': ['1347', 'A', 'April', {'1346': ('month', 6)}], 
'Marie': ['0', 'Absent', 'Fall', {}], 
'Sally': ['1346', 'A', 'April', {'1346': ('month', 6)}]} 
+0

你能告訴我如何在更換前檢查條件嗎? – user3236912

+0

Forexample,就在替換之前我想檢查與關鍵字關聯的元組的第二個值是否小於9,然後替換,否則刪除嵌套字典中的整個鍵和相關值 – user3236912

+0

因此要這樣做​​,而不是立即分配元素字典值的關鍵,你會這樣檢查元素字典。例如''if元素[1346] [1]> 9:del元素['1346']'',否則:執行賦值。 –