如何统计OrderedDict结构中特定自定义对象obj1的数量?
统计OrderedDict中指定类的数量
你这里的OrderedDict存储的是类本身(而非类的实例),其实不用提取对象名称,直接通过类对象本身就能快速统计数量,用collections.Counter是最简便的方法:
完整示例代码
import collections class obj1(): def __init__(self): self.aa = 22 self.bb = 23 class obj2(): def __init__(self): self.dd = 22 self.ee = 23 my_test = collections.OrderedDict() my_test['1'] = obj1 my_test['2'] = obj1 my_test['3'] = obj1 my_test['4'] = obj2 # 统计obj1的数量 from collections import Counter count_obj1 = Counter(my_test.values())[obj1] print(count_obj1) # 输出:3
说明
my_test.values()直接获取OrderedDict中所有的类对象Counter会自动统计每个类对象出现的次数,通过[obj1]直接取出对应数量,一步到位- 如果确实需要获取类的名称字符串,可使用类的
.__name__属性(比如obj1.__name__返回'obj1'),但直接比较类对象本身更准确,避免同名类的混淆
内容的提问来源于stack exchange,提问作者diedro
相关产品推荐
相关产品推荐

