【问题标题】:Returning lowest value (and associating key) for each key/value pair in a nested dictionary为嵌套字典中的每个键/值对返回最小值(和关联键)
【发布时间】:2014-08-25 13:10:35
【问题描述】:

我有一个类似于以下的字典(但有更多的键和不同数量的嵌套值)。

defaultdict(<type 'list'>, {11: [139.04185], 3: [2.661], 5: [12.6, 63.046]})

我正在尝试返回每个键的最小值。 IE。期望的结果是:

11   139.04185

3    2.661

5    12.6

我尝试使用重复的字典循环遍历字典,结果导致查找循环非常漫长且不幸;这尤其是因为重复的字典肯定不是解决方案。

这里还有其他关于字典中单个最大值/最小值的问题,以及使用键的“列表”查找最大值/最小值,但我无法适应这个问题。

如何解决?

【问题讨论】:

    标签: python python-2.7 dictionary


    【解决方案1】:

    只需遍历字典,打印每个键kd[k]values 的最小值

    for k in d:
        print("{:<6}{}".format(k, min(d[k])))
    11    139.04185
    3     2.661
    5     12.6
    

    如果您希望输出对齐,请使用 str.format's Format Specification Mini-Language

    【讨论】:

    • 完美!它就像一个魅力!它也会很快,这正是我想要的......不像我处理索引等的可怕想法。谢谢:)
    【解决方案2】:

    从dict中获取key和value会更快,d[k]可能会更慢

    for k, v in d.items():
        print("{:<6}{}".format(k, min(v)))
    

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 1970-01-01
      • 2014-08-27
      • 2018-09-27
      • 2018-11-30
      • 2022-12-18
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      相关资源
      最近更新 更多