我想过滤一个字典,当我们获得具有特定值的密钥时,我只想从字典中返回密钥。这是我的代码:
def smaller_than(d, value):
result = filter(lambda x: x[1]<=3, d.items())
return result
number_key = {35135135: 5, 60103513: 3, 10981179: 2, 18637724 : 4}
number = smaller_than(number_key, 3)
print(number)
我得到的结果如[(60103513,3),(10981179,2)],但我只想得到它[60103513,10981179]。我认为这是一个简单的答案,但我不知道如何做到这一点。
答案 0 :(得分:2)
您不必将d.items()
作为可迭代传递给filter
。只需传递dict
对象(与dict.keys()
相同),并使用 lambda表达式基于dict[key]
过滤内容:
>>> number_key = {35135135: 5, 60103513: 3, 10981179: 2, 18637724 : 4}
>>> filter(lambda x: number_key[x]<=3, number_key)
[60103513, 10981179]
答案 1 :(得分:1)
或者,您也可以使用列表理解表达式将字典过滤为:
let x: kilograms = 123;
let y: kilometers = 256;
let z: kilogramsPerKilometer = <number>x / <number>y; // Will downcast `kilograms` and `kilometers` types to `number` and then up-cast types to `kilogramsPerKilometer`
答案 2 :(得分:0)
第一个解决方案,只需添加:
new_list = []
for i in number:
new_list.append(i[0])
print new_list
第二个解决方案:
def smaller_than(d, value):
result = filter(lambda x: x[1]<=3, d.items())
result = map(lambda x: x[0], result)
return result
number_key = {35135135: 5, 60103513: 3, 10981179: 2, 18637724 : 4}
number = smaller_than(number_key, 3)
print(number)