我注意到在我的项目中有一些反复出现的代码,涉及到找到列表中某个东西的“最佳匹配”,其中有一个重要的警告,即如果有一个平局,则选择第一个,即顺序很重要。你知道吗
项目是用python编写的,模式如下
things = <list of things>
highest_thing = None
highest_strength = 0
for thing in things:
if thing.strength(some_params) > highest_strength:
highest_thing = thing
highest_strength = thing.strength(some_params)
我尝试使用内置的max
函数来实现这一点,使用字典理解来实现从thing
到它的strength
的映射,但是字典失去了顺序。然后我在Python中找到了OrderedDict,但是考虑到最初的解决方案是多么简单,尽管看起来非常像C,但我觉得这比warrented要复杂得多。你知道吗
理想情况下,我想要
highest_thing = highest(things, some_params)
不必自己编写这个函数(这很好,但我忍不住认为有一个更好的解决方案)。你知道吗
您确实需要使用
max()
函数,但不需要使用字典。你知道吗使用
key
参数计算highest_strength
值,max()
应根据该值选择最高的内容:相关问题 更多 >
编程相关推荐