選項是創建映射記錄現有字典。
限制:無法在映射中創建新字典。
演示:
TM5 = {'ESUN1':1983,'ESUN2':1796,'ESUN3':1536}
ETM7 = {'ESUN1':1997,'ESUN2':1812,'ESUN3':1533}
manpping = {"ETM7":ETM7, "TM5":TM5}
sat = 'ETM7'
key = 'LMIN1'
val = -1.520
if sat in manpping:
manpping[sat][key] = val
print "ETM7:", ETM7
輸出:
$ python task4.py
ETM7: {'ESUN2': 1812, 'ESUN3': 1533, 'ESUN1': 1997, 'LMIN1': -1.52}
創建了新的密鑰信息映射新字典。
演示:
import pprint
TM5 = {'ESUN1':1983,'ESUN2':1796,'ESUN3':1536}
ETM7 = {'ESUN1':1997,'ESUN2':1812,'ESUN3':1533}
manpping = {"ETM7":ETM7, "TM5":TM5}
sat = 'ETM7'
key = 'LMIN1'
val = -1.520
if not sat in manpping:
manpping[sat] = {}
manpping[sat][key] = val
print "mmaping value:"
pprint.pprint(manpping)
print "ETM7:"
pprint.pprint(ETM7)
#- No maaping present.
print "\nNo maaping present."
sat = 'ATM5'
key = 'ATM'
val = 1.520
if not sat in manpping:
manpping[sat] = {}
manpping[sat][key] = val
print "mmaping value:"
pprint.pprint(manpping)
輸出:
mmaping value:
{'ETM7': {'ESUN1': 1997, 'ESUN2': 1812, 'ESUN3': 1533, 'LMIN1': -1.52},
'TM5': {'ESUN1': 1983, 'ESUN2': 1796, 'ESUN3': 1536}}
ETM7:
{'ESUN1': 1997, 'ESUN2': 1812, 'ESUN3': 1533, 'LMIN1': -1.52}
No maaping present.
mmaping value:
{'ATM5': {'ATM': 1.52},
'ETM7': {'ESUN1': 1997, 'ESUN2': 1812, 'ESUN3': 1533, 'LMIN1': -1.52},
'TM5': {'ESUN1': 1983, 'ESUN2': 1796, 'ESUN3': 1536}}
eval()
會工作。
演示:
TM5 = {'ESUN1':1983,'ESUN2':1796,'ESUN3':1536}
ETM7 = {'ESUN1':1997,'ESUN2':1812,'ESUN3':1533}
sat = 'ETM7'
key = 'LMIN1'
val = -1.520
try:
tmp = eval(sat)
tmp[key] = val
print "Values:", tmp
except NameError:
print "No dictionary variable present with name %s"%(sat)
print "-"*10
sat = 'STI7'
key = 'STIN1'
val = -1.520
try:
tmp = eval(sat)
tmp[key] = [val]
print "Values:", tmp
except NameError:
print "No dictionary variable present with name %s"%(sat)
輸出:
$ python task4.py
Values: {'ESUN2': 1812, 'ESUN3': 1533, 'ESUN1': 1997, 'LMIN1': -1.52}
----------
No dictionary variable present with name STI7
字符串是一個字符串,即使它包含的字符也是變量的名稱。這就是爲什麼字符串在它們周圍有引號,而變量名不能。 – Sam 2015-03-02 16:26:13
您需要直接調用字典名稱,而不是通過變量。 – 2015-03-02 16:26:51