【问题标题】:how to count how often a particular key appers in a dict python如何计算特定键在字典 python 中出现的频率
【发布时间】:2023-01-20 23:17:38
【问题描述】:

所以我有一个这样的命令:

{
"channel_list" : [
        {
            "channel_index" : 0,
            "channel_sth" : "A",
        },
        {
            "channel_index" : 1,
            "channel_sth" : "B",
        }]
}

我想计算“频道索引”在该字典中出现的频率。 怎么做?

【问题讨论】:

  • 根据你的字典有多深,你可以这样做:Counter(flattened_dict.keys())[channel_index]
  • 抱歉,它对我不起作用 AttributeError: 'list' object has no attribute 'keys'

标签: python dictionary count


【解决方案1】:

简单的答案是创建一个变量来计算列表中“channel_index”的数量,然后创建一个 for 循环,每次找到名称时变量都会递增 1,如下所示:

channel_index_count = 0

for channel in example_dict['channel_list']:
    if channel.get('channel_index'): // if 'channel_index' exists
        channel_index_count += 1

print(channel_index_count)

肯定有更多的最佳方法可以做到这一点,但这是最简单的

【讨论】:

    【解决方案2】:

    您可以将 sum() 函数与生成器表达式一起使用:

    my_dict = {
    "channel_list" : [
            {
                "channel_index" : 0,
                "channel_sth" : "A",
            },
            {
                "channel_index" : 1,
                "channel_sth" : "B",
            }]
    }
    def count_keys(my_dict, key):
        count = sum(key in channel for channel in my_dict["channel_list"])
        return count
    
    count_keys(my_dict, "channel_index")
    

    输出 :

    2
    

    【讨论】:

      【解决方案3】:
      cnt = 0
      
      for ls in dc.values():
          cnt += len([d for d in ls if 'channel_index' in d.keys()])
      
      print(cnt)
      
      

      【讨论】:

        猜你喜欢
        • 2021-08-04
        • 1970-01-01
        • 2019-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多