需求:读取制表符分割的表格test,统计两列数,两列都有重复的元素,第一列是id,第二列是特征,将id和特征匹配,只考虑三类特征,分别是a、b、c,将没有a、b特征的定义为第一类A,只有a、c类特征的定义为第二类B,有a、b、c特征的定义为第三类C,只有b、c类特征的定义为D,并统计A、B、C、D四类数量
以下是代码部分:
首先,我们需要将制表符分割的表格读取为一个二维列表。
```python
with open('test.txt', 'r') as f:
table = [line.strip().split('\t') for line in f]
接下来,我们可以使用一个字典来记录每个id对应的特征。遍历表格,将每个id和特征存储到字典中。
feature_dict = {}
for row in table:
id = row[0]
feature = row[1]
if id in feature_dict:
feature_dict[id].add(feature)
else:
feature_dict[id] = {feature}
然后,我们可以遍历字典,根据特征的集合来判断每个id对应的类别,并统计每个类别的数量。
A_count = 0
B_count = 0
C_count = 0
D_count = 0
for features in feature_dict.values():
if 'a' not in features and 'b' not in features:
A_count += 1
elif 'a' in features and 'c' in features:
B_count += 1
elif 'a' in features and 'b' in features and 'c' in features:
C_count += 1
elif 'b' in features and 'c' in features:
D_count += 1
print("A类数量:", A_count)
print("B类数量:", B_count)
print("C类数量:", C_count)
print("D类数量:", D_count)
这样就可以得到A、B、C、D四个类别的数量了。
例子 统计结果
网友评论