<p>现在,您已经修复了原始问题,并修复了执行反向检查的下一个问题,并重命名了所有变量,现在您得到了:</p>
<pre><code>for match in dictionary:
if any(match in value for value in sentences):
print match
</code></pre>
<p>你的问题是:</p>
<blockquote>
<p>The way I have the code written i can get the dictionary items but instead i want to print the sentences. </p>
</blockquote>
<p>嗯,是的,你的<code>match</code>是一个字典项,这就是你要打印的内容,所以你得到的当然是这个。在</p>
<p>如果要打印包含字典项的句子,就不能使用<a href="http://docs.python.org/3/library/functions.html#any" rel="nofollow">^{<cd2>}</a>,因为如果有元素为真,那么该函数的全部意义就是返回True。它不会告诉你是哪一个事实上,如果不止一个,它会在第一个停止。在</p>
<p>如果您不了解<code>any</code>之类的函数以及传递给它们的生成器表达式,那么就不应该将它们用作神奇的调用。弄清楚如何将它们写成显式循环,这样您就可以轻松地回答这些问题了。(请注意,<code>any</code>文档直接向您展示了如何编写等效循环。)</p>
<p>例如,现有代码相当于:</p>
^{pr2}$
<p>这样写,应该很明显如何修复它。首先,您希望打印句子而不是单词,所以打印<code>value</code>而不是<code>match</code>(同样,如果您使用有意义的变量名,如<code>sentence</code>和{<cd8>},而不是像<code>value</code>这样的无意义的名称和<code>match</code>这样的误导性名称,这将非常有帮助。其次,要打印所有匹配的句子,而不仅仅是第一个句子,所以不要<code>break</code>。所以:</p>
<pre><code>for match in dictionary:
for value in sentences:
if match in value:
print value
</code></pre>
<p>如果你回到我的第一个答案,你可能会注意到这正是我建议的结构。在</p>
<p>您可以通过使用理解和迭代器函数来简化或缩短这一过程,但除非您理解了简单版本,以及这些理解和迭代器函数是如何工作的。在</p>