【问题标题】:Using min to get lowest key and value from dictionary [duplicate]使用 min 从字典中获取最低键和值 [重复]
【发布时间】:2017-09-19 11:40:09
【问题描述】:

字典:

d = {u'A': 240, u'B': 242, u'C': 243}

我已经成功地使用以下代码识别了最低键:

min_ = min(d, key=d.get)

输出:

A

我想让输出也包含该值:

A, 240


注意

如果可能,我想避免使用lambda

【问题讨论】:

  • d[min_] 给你价值
  • 你有一个dict。你有一个键,你想要一个值。我想你可以把这些点联系起来。
  • 或者,min(d.items(), key=operator.itemgetter(1))
  • 如果可能,我想避免使用 lambda。请不要在没有至少解释原因的情况下设置任意限制。 为什么 lambda 是不可接受的?

标签: python python-2.7 dictionary min


【解决方案1】:

min 应用于字典items 然后:

from operator import itemgetter

min(d.items(), key=itemgetter(1))

我使用operator.itemgetter() callable 从每个(key, value) 对中检索value,但您也可以使用lambda pair: pair[1]。后者会稍微慢一些,因为它涉及退回到 Python 调用框架。

演示:

>>> from operator import itemgetter
>>> d = {u'A': 240, u'B': 242, u'C': 243}
>>> min(d.items(), key=itemgetter(1))
(u'A', 240)

【讨论】:

  • 太棒了,谢谢!有没有一种简单的方法可以删除“不必要的字符”,即“(u')”,所以我只剩下A, 240
  • @LearningToPython:你正在回显或打印一个元组,所以使用repr();元组并不意味着最终用户友好,它们只有调试友好的表示。如果要将其格式化为其他内容,请使用字符串格式化。 '{}, {}'.format(*result) 将按照您想要的方式对其进行格式化(将两个值放入带有逗号和空格的字符串中)。
  • 谢谢 - 我发现我可以做到 x[0]x[1] 给了我结果
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2019-04-23
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
相关资源
最近更新 更多