首页 > 解决方案 > 如何计算所有具有序列号的单词?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.")

有没有办法编写一个计算所有网站的代码?最好没有任何模块。先感谢您。

标签: pythonpython-3.x

解决方案


您可以使用regex来获取子字符串,例如web1web2然后创建set以删除任何重复项,最后将其传递给内置函数len以获取计数

import re

>>> len(set(re.findall('web\d+', line)[0] for line in f.readlines())) #f is fileBuffer
#output:
4

如果您不想使用正则表达式,您可以使用字符串方法来完成,但这会不必要地复杂。


推荐阅读