<p>我想创建字典的一个子集,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>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)
</code></pre>
<p>输出:</p>
<pre><code>{'a': 3}
</code></pre>
<p>然而,当我用我的字典做它不工作。你知道吗</p>
<p>以下是我正在使用的密钥列表:</p>
<pre class="lang-py prettyprint-override"><code>key=list(tabledic.keys())
print (key)
</code></pre>
<p>输出:</p>
<pre><code>['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 ']
</code></pre>
<p>下面是我正在运行的代码:</p>
<pre><code>#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)
</code></pre>
<p>我得到以下错误:</p>
<pre class="lang-py prettyprint-override"><code>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'
</code></pre>
<p>当我这样运行时:</p>
<pre class="lang-py prettyprint-override"><code>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)
</code></pre>
<p>我得到这个输出:</p>
<pre class="lang-py prettyprint-override"><code>{'dev semi': 2}
</code></pre>
<p>为什么它不能用一个键运行?
为什么我只得到一个输出,当我运行它与2键?你知道吗</p>
<p>而不是</p>
<pre><code>subdic={k: dictex[k] for k in ('dev semi')}
</code></pre>
<p>使用</p>
<pre><code>subdic={k: dictex[k] for k in ('dev semi',)}
</code></pre>
<p>所以它变成一个元素的元组</p>