python字典统计数量 python统计字典中key个数 |
您所在的位置:网站首页 › 统计某字符串中汉字的个数 › python字典统计数量 python统计字典中key个数 |
保持简单 如果我们知道所有的值都是字典,并且不希望检查它们的任何值是否也是字典,那么它就像下面这样简单: len(dict_test) + sum(len(v) for v in dict_test.itervalues()) 细化它一点,实际上在计数前检查值是否是字典: len(dict_test) + sum(len(v) for v in dict_test.itervalues() if isinstance(v, dict)) 最后,如果你想做一个任意深度,像下面的东西: def sum_keys(d): return (0 if not isinstance(d, dict) else len(d) + sum(sum_keys(v) for v in d.itervalues()) print sum_keys({'key2': {'key_in3': 'value', 'key_in4': 'value'}, 'key1': {'key_in2': 'value', 'key_in1': dict(a=2)}}) # => 7在后一种情况下,我们定义一个将被递归调用的函数。给定值d,我们返回: > 0如果该值不是字典;要么 >字典中的键数量,加上我们所有子代码中键的总数。 使它更快 以上是一个简洁和容易理解的方法。我们可以使用发电机得到一点快: def _counter(d): # how many keys do we have? yield len(d) # stream the key counts of our children for v in d.itervalues(): if isinstance(v, dict): for x in _counter(v): yield x def count_faster(d): return sum(_counter(d))这让我们更多的性能: In [1]: %timeit sum_keys(dict_test) 100000 loops, best of 3: 4.12 µs per loop In [2]: %timeit count_faster(dict_test) 100000 loops, best of 3: 3.29 µs per loop |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |