基于辅助列表中价值的字典中的最低值

发布于 2025-01-23 21:18:26 字数 200 浏览 0 评论 0原文

我有一个列表和一个字典:

lst = ['Boston', 'Denver']
dic = {'Atlanta': 0, 'Boston':100, 'Denver':160}

我想找到具有最低值的字典键,只要密钥在列表中。在这种情况下,我想返回“波士顿”而不是“亚特兰大”,因为它不包含在列表中。如何有效地搜索最低价值?

I have a list and a dictionary:

lst = ['Boston', 'Denver']
dic = {'Atlanta': 0, 'Boston':100, 'Denver':160}

I want to find the dictionary key that has the lowest value provided the key is in the list. In this case, I want to return 'Boston' rather than 'Atlanta' since it is not contained in the list. How would I search for the minimum value efficiently?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撑一把青伞 2025-01-30 21:18:26

我会这样做:

min(lst, key=dic.get)

I would do this:

min(lst, key=dic.get)
小清晰的声音 2025-01-30 21:18:26

尝试:

k = min(dic.keys() & lst, key=dic.get)
print(k)

打印:

Boston

Try:

k = min(dic.keys() & lst, key=dic.get)
print(k)

Prints:

Boston
晚风撩人 2025-01-30 21:18:26

您可以将min()与一个键参数一起使用,该参数将inf的值关联到列表中未显示的任何密钥:

min(dic.keys(), key=lambda x: dic[x] if x in lst else float('inf'))

此输出:

Boston

You can use min() with a key parameter that associates a value of inf to any key that doesn't appear in the list:

min(dic.keys(), key=lambda x: dic[x] if x in lst else float('inf'))

This outputs:

Boston
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文