计算字典中项目出现的频率,并在字典中更新它

2024-04-25 09:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我的口述如下:

d
{'EventThread': [40002], 'kworker/u16:13': [80002], 'kworker/u16:0': [80002], 'AudioOut_D': [80002, 80002, 80002, 80002, 80002, 80002], 'putmethod.latin': [80002], 'surfaceflinger': [40002], 'InputDispatcher': [80002]}

我想要类似的东西:

^{pr2}$

表示项目的频率

我尝试了以下代码:

print((collections.Counter(d['AudioOut_D'])))
Counter({80002: 6})

但如何把它更新成措辞呢

如何生成dict的TIA代码如下:

self._sched_task_load_flags = defaultdict(list)
def sched_task_load_handler(self,thread):
        "accepts threads and builds corresponding threads and flags co-relation"
        _sched_task_load_flags = self._sched_task_load_flags
        try:
            while True:
                record = (yield)
                if "sched_task_load"==record["function"]:
                    flags = record["flags"]
                else:
                    print "error in sched_task_load_function_parse"
                    raise Exception

如何在下面的循环中组合两个操作:

e = {k: dict(Counter(v)) for k, v in d.iteritems()}

这很好用,但我还需要获得所有标志的列表,如下所示:

for k,v in flags.iteritems():
    list_of_all_flags.append(list(Counter(v)))

如何在一个TIA中组合上述两个环路


Tags: 代码inselftaskcounterloadrecorddict
1条回答
网友
1楼 · 发布于 2024-04-25 09:52:59

是的,您可以对每个值应用Counter()方法,如下所示:

from collections import Counter
e = {k: dict(Counter(v)) for k, v in d.iteritems()}

输出:

^{pr2}$

相关问题 更多 >