2012-04-15 23 views
1

簡単な質問?私は、次のようなものを得るための無限の方法があるのだろうかと思っています。defaultdict(list)pythonの要素数を確認

私はdefaultdict(リスト)

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

を持っているが、私にリスト例えばので、「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方法はありますか? おかげ['a']

答えて

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
n = 2 
foo = {"a":[1,2,3], "b":[3]} 
key_list = [item for item in foo.keys() if len(foo[item]) > 2] 

結果

1

あなたはフィルタ機能を使用して試すことができます:

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

私は、フィルタが最善であるとは思いませんtあなたがマップのためにそれを必要とする場合は、使用してください。 –

関連する問題