擅长:python、mysql、java
<p>大多数Python程序员都会告诉您,最简洁的方法是使用:</p>
<pre><code>any(x in nums for x in str1)
</code></pre>
<p>但是,如果您是Python新手,或者需要更好地掌握字符串操作的基本知识,那么您应该学习如何使用更基本的工具来实现这一点。你知道吗</p>
<p>在Python中,可以使用索引周围的方括号访问字符串、列表、元组或任何其他<em>iterable</em>的单个元素。字符串的字符从0开始索引(例如<code>"hello"[0]</code>给出<code>"h"</code>)。你知道吗</p>
<p>使用for循环,对于Python新手来说,该解决方案比上述<code>any</code>解决方案更容易理解:</p>
<pre><code>result = False
for i in range(len(str1)):
if str1[i] in nums:
result = True
</code></pre>
<p>Python for循环还可以直接迭代字符串的元素:</p>
<pre><code>result = False
for x in str1:
if x in nums:
result = True
</code></pre>
<p>在本文的第一个代码片段中,表达式<code>x in nums for x in str1</code>使用Python的<em>列表理解</em>特性。它遍历<code>str1</code>的每个元素<code>x</code>,并找到<code>x in nums</code>的结果。<code>any(x in nums for x in str1)</code>返回<code>True</code>如果(并且仅当)这些结果中至少有一个是<code>True</code>(表示数字在<code>str1</code>中)。这很像本文中给出的第二个<code>for</code>循环示例,许多Python程序员选择这个选项是因为它简洁,而且其他Python程序员仍然可以理解。你知道吗</p>