2

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

我有一个 defaultdict(list)

 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方法可以做到这一点?谢谢

4

3 回答 3

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']
于 2012-04-15T21:17:16.783 回答
1
n = 2
foo = {"a":[1,2,3], "b":[3]}
key_list = [item for item in foo.keys() if len(foo[item]) > 2]

结果是['a']

于 2012-04-15T21:17:15.740 回答
1

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

filter(lambda x: len(dictionary[x])> num, dictionary.keys())
于 2012-04-15T21:18:27.150 回答