查找defaultdict(list)python中的元素数量

时间:2012-04-15 21:12:58

标签: python

一个简单的问题?我想知道是否有一种pythonic方式来获得以下内容。

我有一个defaultdict(列表)

 foo = {"a":[1,2,3], "b":[3]....} and so on.

是否有一种pythonic方式来编写一个函数,该函数只返回列表长度大于“n”的键

所以例如

 def return_keys_based_on_value_length(num,dictionary):
    key_list = []
    for k,v in dictionary:
         if len(v)>= num:
            key_list.append(k)
    return key_list

是否有一种pythonic方式来做到这一点? 感谢

3 个答案:

答案 0 :(得分:4)

foo = {"a":[1,2,3], "b":[3], "c":[1,2], "d":[1,2,3,4]}

n = 2

my_list = [key for key,val in foo.iteritems() if len(val) > n]

结果:

>>> my_list
['a', 'd']

答案 1 :(得分:1)

n = 2
foo = {"a":[1,2,3], "b":[3]}
key_list = [item for item in foo.keys() if len(foo[item]) > 2]

['a']

中的结果

答案 2 :(得分:1)

您可以尝试使用过滤功能:

filter(lambda x: len(dictionary[x])> num, dictionary.keys())