首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从可变数量的键创建dictionray的子集?

如何从可变数量的键创建dictionray的子集?
EN

Stack Overflow用户
提问于 2019-06-21 03:18:29
回答 2查看 56关注 0票数 0

我想创建一个字典的子集,如下所示:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
{'a': 3}

然而,当我使用我的字典时,它就不能工作了。

下面是我正在使用的密钥列表:

代码语言:javascript
复制
key=list(tabledic.keys())
print (key)

输出:

代码语言:javascript
复制
['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 ']

下面是我正在运行的代码:

代码语言:javascript
复制
#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)

我得到以下错误:

代码语言:javascript
复制
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'

当我像这样运行它时:

代码语言:javascript
复制
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)

我得到以下输出:

代码语言:javascript
复制
{'dev semi': 2}

为什么它不能用一个密钥运行?为什么当我用两个键运行它时,我只得到一个输出?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56692563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档