擅长:python、mysql、java
<pre><code>elif x1.isidentifier():
s2=(y,"Identifier",x1)
if x1 in stable.keys():
stable[x1].append(y)
else:
stable[x1]=y
</code></pre>
<p>在上面的else部分中,您是第一次添加<code>integer</code>。因此,下次使用<code>append</code>时,会出现该错误。</p>
<p>更确切地说,当您第一次将值添加到dict时,请将整数<code>y</code>包装在列表<code>[y]</code>中</p>
<pre><code> else:
stable[x1]=[y]
</code></pre>
<p>好吧,您已经从<em>@Martijn的答案</em>中知道,在这里使用<code>defaultdict</code>将是更好的选择,因为这样您就不需要检查<code>containment</code>的<code>key</code>。</p>
<p>但是,仍然与你在dict中检查密钥的方式有关:</p>
<pre><code>if x1 in stable.keys():
</code></pre>
<p>您不需要使用<code>stable.keys()</code>,只需使用<code>stable</code>,这将只签入<code>keys</code>。</p>
<pre><code>if x1 in stable:
</code></pre>