Я хочу создать подмножество словаря, например:
key=['a','b','c']
val=[1,2,3]
dictex={k: val[i] for ind, k in enumerate (key)}
subdic={k: dictex[k] for k in ('a')}
print(subdic)
Out:
{'a': 3}
, однако, когда я делаю это со своим словарем, это не работает.
Вот список ключей, которые я использую:
key=list(tabledic.keys())
print (key)
Out:
['INTRO sheet',
'Mo-G-development',
'DIE-deposition-250nm',
'Die-development-250nm',
'Etching test',
'Die-deposition-150nm',
'Die-development-150nm',
'Die-dev-day3-before-starting',
'Die-development-day3',
'dev semi',
'deposition GIZO',
'Deposition SD',
'SD-development ']
А вот код, который я использую:
#random list of values for dictionary
val=np.arange(len(key))
#create the dictionary
dictex={k: val[i] for ind, k in enumerate (key)}
subdic={k: dictex[k] for k in ('dev semi')}
print (subdic)
Я получаю следующую ошибку:
KeyError Traceback (most recent call last)
<ipython-input-155-d062206ef3f4> in <module>()
3
4 dictex={k: val[i] for ind, k in enumerate (key)}
----> 5 subdic={k: dictex[k] for k in ('dev semi')}
6 subdic
<ipython-input-155-d062206ef3f4> in <dictcomp>(.0)
3
4 dictex={k: val[i] for ind, k in enumerate (key)}
----> 5 subdic={k: dictex[k] for k in ('dev semi')}
6 subdic
KeyError: 'd'
И когда я запускаю это так:
key=list(tabledic.keys())
val=np.arange(len(key))
dictex={k: val[i] for ind, k in enumerate (key)}
subdic={k: dictex[k] for k in ('dev semi', 'dev semi')}
print (subdic)
Я получаю этот вывод:
{'dev semi': 2}
Почему он не работает с одним ключом?Почему я получаю только один вывод, когда запускаю его с 2 клавишами?