擅长:python、mysql、java
<p>你必须从大的事情走向小的事情——重新安排你在听写理解中的“for”成为另一种方式</p>
<p>另外,对于嵌套的dict,请进行另一个理解,否则如果您的代码正常工作,您最多只能得到一个元素字典</p>
<p><strong>记住,你可以在理解中使用普通函数</strong>您可以将单个事物作为函数进行解析,然后将<code>fun(pesticideSoup[p])</code>作为您的值</p>
<p>为了便于阅读,代码可以分成多行</p>
<pre><code>results = {p: {t:tableText[n+1]
for t in [td.text.strip() for td in pesticideSoup[p].find_all("td", recursive=True)]
for field in wantedfields if field in t}
for p in rand_links.keys()}
</code></pre>
<p>^这基本上就是你修改过的代码</p>
<p>它会崩溃,因为我不知道<code>tableText</code>在这个例子中实际意味着什么-实际上,我不理解你原来的<code>for n,t in enumerate(tableText)</code>,或者因为你正在用tableText[n]:tableText[n+1]填充子目录(如果需要tableText[n])</p>
<p>但这个版本实际上是可读的,而且你可能会更好地发现任何你可能犯下的错误(或者做我提到的功能。)</p>