2

簡単な質問ですか?以下を取得するためのpythonicな方法があるかどうか疑問に思っています。

私は defaultdict(list) を持っています

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

リストの長さが「n」を超えるキーのみを返す関数を作成するpythonicな方法はありますか

例えば

 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 に答える