[英]How to count occurences of a value match from a text file
这是我的问题:每个员工都由一个 ID 唯一标识(例如 KCUTD_41)我已经从一个文件中创建了一个字典来收集每个公司的员工 ID,如下所示:
{ 'Company 1' :['KCUTD_41',
'KCTYU_48',
'VTSYC_48',
......]
'Company 2' :['PORUH_21',
'PUSHB_10',
....... ]
'Company 3' :['STEYRU_69']}
我总共有几家公司。
在另一个文件中并行,我有几行,其中每一行对应于具有多个员工和博士生的公司之间的协作组(d215485 等.....)
该文件如下所示:
PORUH_21 d215487 d215489 d213654 KCTYU_48 d154225 ...
d25548 d89852 VTSYC_48 d254548 d121154 d258774 PUSHB_10 ...
etc ....
我想要的是员工人数和组数(出现的行)以获得类似的东西
OUTPUT:
Company 1 : (number of employees from company 1 per line ) : number of groups or line where it appears in total
Company 2 : (number of employees per line from company2) : nb of groups or line where the employees from company2 appears in total
Company 3 : ......
我想使用一个条件来查看我的字典中每个键的值是否匹配,如果是,则计算出现次数
我希望它现在更好^^'
如果你能帮助我^^
我不清楚你希望 output 看起来如何,但这段代码可能会帮助你到达你想要 go 的地方......
import re
companies = {
'Company 1' :['KCUTD_41','KCTYU_48','VTSYC_48'],
'Company 2' :['PORUH_21','PUSHB_10'],
'Company 3' :['STEYRU_69']
}
finalout = {}
for k,v in companies.items():
finalout[k] = {"number_in_company":len(v)}
print (finalout)
lines_from_file = [
"PORUH_21 d215487 d215489 d213654 KCTYU_48 d154225",
"d25548 d89852 VTSYC_48 d254548 d121154 d258774 PUSHB_10"
]
pattern_groups = "(d\d+)"
pattern_employees = "([A-Z]_\d+)"
for line in lines_from_file:
print("---------------------")
print(line)
print("Groups per line:", re.subn(pattern_groups, '', line)[1])
print("Employees per line:", re.subn(pattern_employees, '', line)[1])
OUTPUT:
{'Company 1': {'number_in_company': 3}, 'Company 2': {'number_in_company': 2}, 'Company 3': {'number_in_company': 1}}
---------------------
PORUH_21 d215487 d215489 d213654 KCTYU_48 d154225
Groups per line: 4
Employees per line: 2
---------------------
d25548 d89852 VTSYC_48 d254548 d121154 d258774 PUSHB_10
Groups per line: 5
Employees per line: 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.