python - 在 Python 中,如何计算电子邮件地址列表中的数字“1”?
问题描述
这是我到目前为止所拥有的:
emails = ['james1@example.com', 'januline12@januline.com', 'fillip.morris@pm.com',
'ray@bradbury.org', 'me+you@hotmail.com', 'seven11@gmail.com',
'noreply@msd.com', 'cars4u@tesla.com']
def email_security_scan(a, b):
numbers = []
for item in a:
for subitem in item.split():
if subitem == b:
numbers.append +=1
print(numbers)
email_security_scan(emails, 1)
它不起作用,返回[]
。
解决方案
你的逻辑有一些问题:
- 您正在使用
str.split
没有空格的字符串。无需拆分您的字符串。 - 您正在将整数与字符串进行比较。这行不通。
- 您正在追加到列表而不是递增计数器变量。
因此,如果您需要计算包含以下内容的电子邮件地址的数量,这将起作用'1'
:
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
更简单地说,您可以使用sum
生成器表达式:
def email_security_scan(a, b):
print(sum(str(b) in item for item in a))
email_security_scan(emails, 1)
# 3
或者要计算所有电子邮件地址中“1”的总数str.join
,您可以使用then str.count
:
def email_security_scan(a, b):
print(''.join(a).count(str(b)))
email_security_scan(emails, 1)
# 4
推荐阅读
- javascript - 选中Vue中一个复选框上的所有复选框
- google-apps-script - Google 表格 - Json 到表格
- java - 如何在 java:invoke in mule 4 之后将 java 对象转换为 JSON
- python - conv2d 层有多少个参数
- xamarin - 我如何在 xamarin 的一页中设置两个列表视图
- arrays - 从反应状态数组中删除项目
- python - 如何从熊猫中的给定数据框列中获取唯一对
- python - 如何通过文件处理从给定的数据框列中获取唯一对?
- php - 通过 AJAX 发送时数据丢失
- google-cloud-platform - 获取 get-credentials 需要 gcp 上的编辑权限错误