擅长:python、mysql、java
<p>你的逻辑有一些问题:</p>
<ul>
<li>在没有空格的字符串上使用<code>str.split</code>。没有必要把你的绳子分开。你知道吗</li>
<li>您正在比较整数和字符串。这行不通。你知道吗</li>
<li>您将追加到列表,而不是递增计数器变量。你知道吗</li>
</ul>
<p>因此,如果您需要计算包含<code>'1'</code>的电子邮件地址的数量,这将起作用:</p>
<pre><code>def email_security_scan(a, b):
count = 0
for item in a:
if str(b) in item:
count += 1
print(count)
email_security_scan(emails, 1)
# 3
</code></pre>
<p>更简单地说,您可以将<code>sum</code>与生成器表达式一起使用:</p>
<pre><code>def email_security_scan(a, b):
print(sum(str(b) in item for item in a))
email_security_scan(emails, 1)
# 3
</code></pre>
<p>或者要计算所有电子邮件地址中“1”的总数,可以使用<code>str.join</code>,然后使用<code>str.count</code>:</p>
<pre><code>def email_security_scan(a, b):
print(''.join(a).count(str(b)))
email_security_scan(emails, 1)
# 4
</code></pre>