一个简单的问题?我想知道是否有一种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方式来做到这一点? 感谢
答案 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())