python - 如何计算所有具有序列号的单词?Python3
问题描述
我有一个包含网站列表的 .txt 文件。所有网站都被列为:
web1=www.facebook.com
web1pass=password123
web2=www.instagram.com
web2pass=password123
web3=www.youtube.com
web3pass=password123
web4=www.twitter.com
web4pass=password123
我想计算所有具有序列号的“网络”单词。我的代码是:
with open(datafile, "r") as file:
data = file.readlines()
web_count = 0
for line in data:
if line.split("=")[0] == "web": # I thought using web* might work.
web_count = web_count + 1
print(f"{web_count} websites found.")
有没有办法编写一个计算所有网站的代码?最好没有任何模块。先感谢您。
解决方案
您可以使用regex
来获取子字符串,例如web1
,web2
然后创建set
以删除任何重复项,最后将其传递给内置函数len
以获取计数
import re
>>> len(set(re.findall('web\d+', line)[0] for line in f.readlines())) #f is fileBuffer
#output:
4
如果您不想使用正则表达式,您可以使用字符串方法来完成,但这会不必要地复杂。
推荐阅读
- aws-lambda - 如何使用 AWS Lambda 解压缩和读取巨大的(1-10+ GB)压缩文件(gzip、zip、parquet)?
- javascript - 尝试从 localhost 获取 json 文件的数据时如何解决 CORS Origin 问题
- mysql - MYSQL 使用分组结果中的 AVG 值设置列值
- dhall - 解析路径类型
- c++ - 使用 sort() 对向量进行排序时,在极少数情况下返回进程 (0xc0000005)
- amazon-dynamodb - DynamoDB:获取与可能键之一匹配的所有项目
- docker - 在 jenkins pod 中执行 docker 和 kubectl 命令并支持持久卷
- c# - OpenTK (OpenGL) 如何正确使用 BufferSubData 和 DrawElements 与多个对象
- angular - Angular - 使用 jsonPath
- postgresql - PostgreSQL:如何将“PIVOT”从 T-SQL 转换为 PLPGSQL 过程