Python:从值中获取相应的键
因此,d是一个Python:从值中获取相应的键,python,dictionary,functional-programming,key-value,Python,Dictionary,Functional Programming,Key Value,因此,d是一个dict(),k是float,这个函数返回正确的值,但是我可以从这个函数返回该值的对应键吗?而不是用dict.values()迭代值,而是用dict.items()迭代键和值,从而产生(键,值)成对 def get_nearest_less_element(d, k): return (min(value for value in map(float, d.values()) if value >= k)) def get_nearest_less_element(
dict()
,k是float
,这个函数返回正确的值,但是我可以从这个函数返回该值的对应键吗?而不是用dict.values()
迭代值,而是用dict.items()
迭代键和值,从而产生(键,值)
成对
def get_nearest_less_element(d, k):
return (min(value for value in map(float, d.values()) if value >= k))
def get_nearest_less_element(d, k):
return min(key for key, value in d.items() if float(value) >= k)
与使用dict.values()
迭代值不同,使用dict.items()
迭代键和值,从而生成(键,值)
对
def get_nearest_less_element(d, k):
return min(key for key, value in d.items() if float(value) >= k)
如果密钥是您想要的:
def get_nearest_less_element(d, k):
return min(key for key, value in d.items() if float(value) >= k)
def get_nearest_less_元素(dict_obj,阈值):
最小值,最小键=最小(
((值,键)表示键,如果float(value)<阈值,则表示dict_obj.items()中的值),
key=lambda value\u key:float(value\u key[0])
)
打印('min_值='、min_值'、min_键='、min_键)
返回最小值键
基本上,我所做的与@MrRobot9类似,但我根据值对(value,key)
对进行排序。请注意,因为我将值放在键之前,所以排序将基于值,不需要键=
部分,但我只是为了更明确而将其放在那里。如果key是您想要的:
def get_nearest_less_element(d, k):
return min(key for key, value in d.items() if float(value) >= k)
def get_nearest_less_元素(dict_obj,阈值):
最小值,最小键=最小(
((值,键)表示键,如果float(value)<阈值,则表示dict_obj.items()中的值),
key=lambda value\u key:float(value\u key[0])
)
打印('min_值='、min_值'、min_键='、min_键)
返回最小值键
基本上,我所做的与@MrRobot9相似,但我对(值,键)进行了排序基于值,请注意,因为我把值放在键之前,排序是基于值的,不需要<代码>键= 部分,但我只是把它放在更明确的地方。 < P>如果您想返回邻居,请考虑这个解决方案:
def get_nearest_less_element(dict_obj, threshold):
min_value, min_key = min(
((value, key) for key, value in dict_obj.items() if float(value) < threshold),
key=lambda value_key: float(value_key[0])
)
print('min_value =', min_value, ', min_key =', min_key)
return min_key
此外,通过以下简单测试,您可以检查从旧函数和新函数获得的结果的等效性:
def get_nearest_less_element2(d, k):
dict_nearest = {value:key for key,value in d.items() if value >= float(k)}
nearest_index = min(dict_nearest)
nearest_value = dict_nearest[nearest_index]
return nearest_index, nearest_value
如果你想返回邻居,考虑这个解决方案:
def get_nearest_less_element(dict_obj, threshold):
min_value, min_key = min(
((value, key) for key, value in dict_obj.items() if float(value) < threshold),
key=lambda value_key: float(value_key[0])
)
print('min_value =', min_value, ', min_key =', min_key)
return min_key
此外,通过以下简单测试,您可以检查从旧函数和新函数获得的结果的等效性:
def get_nearest_less_element2(d, k):
dict_nearest = {value:key for key,value in d.items() if value >= float(k)}
nearest_index = min(dict_nearest)
nearest_value = dict_nearest[nearest_index]
return nearest_index, nearest_value
只需使用d.items()在字典上迭代,在那里您可以访问键和值。最后,您将同时拥有键和值。将它们作为元组返回。标题问题的可能重复项是重复项,您真正想知道的是如何迭代键和值,这是一个不同的问题,只需使用d.items()在字典中迭代即可,在那里您可以访问键和值。最后,您将同时拥有键和值。将它们作为元组返回。标题问题的可能重复是重复的,您真正想知道的是如何迭代键和值,这是一个不同的问题