python字典实例,统计元素出现频率

需求:读取制表符分割的表格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四个类别的数量了。

例子
统计结果

你可能感兴趣的:(python字典实例,统计元素出现频率)