所以我有一个这样的字典:
{'key1': [<__main__.OrderRecord object at 0x02C70C90>], 'key2': [<__main__.OrderRecord object at 0x02C709B0>, <__main__.OrderRecord object at 0x02BC9AB0>], 'key3': [<__main__.OrderRecord object at 0x02C2F2B0>]}
Class对象包含以下元素:
class OrderRecord:
"""The OrderRecord class
Data attributes: date of type str
location of type str
name of type str
colour of type str
ordernum of type int
cost of type int
"""
def __init__(self, file_line):
"""Takes a given file line and initialises an OrderRecord instance"""
split_file = file_line.split(",")
self.date = split_file[0]
self.location = split_file[1]
self.name = split_file[2]
self.colour = split_file[3]
self.ordernum = split_file[4]
self.costs = self.cost_of_order()
我需要做的是获取Class对象中的所有不同颜色(每个对象只有一种颜色,但它们可能与其他对象相同),然后是对象数量的计数含有那种颜色。
输出将是这样的:
Colour variables: No. of objects:
Colour1 2
Colour2 1
Colour3 1
... ...
Etc等
我认为我可以通过从原始文件数据中获取信息并使用for循环或其他内容将其索引到其中来获取信息,但我只是认为直接读取Class对象会更容易,如果有可能的话所有?请注意,某些键可以包含多个Class对象的单个列表。
答案 0 :(得分:0)
from collections import Counter
object_dict = {'key1': [<__main__.OrderRecord object at 0x02C70C90>]}
cnt = Counter()
for item_group in object_dict.values():
for item in item_group:
cnt[item.color] += 1
然后,您可以从cnt
计数器对象访问有关计数的各种信息,您可以找到有用的各种方法,例如most_common
。