• <legend id='pmNpJ'><style id='pmNpJ'><dir id='pmNpJ'><q id='pmNpJ'></q></dir></style></legend>
        <bdo id='pmNpJ'></bdo><ul id='pmNpJ'></ul>

      <small id='pmNpJ'></small><noframes id='pmNpJ'>

      1. <tfoot id='pmNpJ'></tfoot>
        <i id='pmNpJ'><tr id='pmNpJ'><dt id='pmNpJ'><q id='pmNpJ'><span id='pmNpJ'><b id='pmNpJ'><form id='pmNpJ'><ins id='pmNpJ'></ins><ul id='pmNpJ'></ul><sub id='pmNpJ'></sub></form><legend id='pmNpJ'></legend><bdo id='pmNpJ'><pre id='pmNpJ'><center id='pmNpJ'></center></pre></bdo></b><th id='pmNpJ'></th></span></q></dt></tr></i><div id='pmNpJ'><tfoot id='pmNpJ'></tfoot><dl id='pmNpJ'><fieldset id='pmNpJ'></fieldset></dl></div>

        在python中的字典列表中查找最小值

        时间:2024-08-10

            <legend id='sGyXJ'><style id='sGyXJ'><dir id='sGyXJ'><q id='sGyXJ'></q></dir></style></legend>
              • <tfoot id='sGyXJ'></tfoot>

                  <bdo id='sGyXJ'></bdo><ul id='sGyXJ'></ul>
                • <i id='sGyXJ'><tr id='sGyXJ'><dt id='sGyXJ'><q id='sGyXJ'><span id='sGyXJ'><b id='sGyXJ'><form id='sGyXJ'><ins id='sGyXJ'></ins><ul id='sGyXJ'></ul><sub id='sGyXJ'></sub></form><legend id='sGyXJ'></legend><bdo id='sGyXJ'><pre id='sGyXJ'><center id='sGyXJ'></center></pre></bdo></b><th id='sGyXJ'></th></span></q></dt></tr></i><div id='sGyXJ'><tfoot id='sGyXJ'></tfoot><dl id='sGyXJ'><fieldset id='sGyXJ'></fieldset></dl></div>

                    <tbody id='sGyXJ'></tbody>

                  <small id='sGyXJ'></small><noframes id='sGyXJ'>

                  本文介绍了在python中的字典列表中查找最小值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我要查找并返回字符串中id的最小值,例如:

                  find_min_id([{"nonid": "-222", "id": 0}, {"id": -101}])
                  -101
                  find_min_id([{’id’: 63, 'id': 42}])
                  42
                  

                  到目前为止我有这个:

                  def find_min_id(list):
                      return min(list)
                  

                  但这意味着:

                  {'id': -101}
                  

                  并且我只需要最低ID的值。

                  推荐答案

                  使用minkey参数:

                  def find_min_id(l):
                      return min(l, key=lambda d: d.get("id", float('inf')))["id"]
                  

                  这实际上会查找最小ID,并且无需创建新列表即可执行此操作。

                  唯一的问题是,列表中的元素可能没有'id'键。为此,我不得不使用.get("id", float('inf'))。因此,如果没有id键,该函数将返回inf,这可能不是我们所希望的。当给定一个空列表时,min()所做的是抛出一个异常,所以如果我们传递给它的所有判据都没有'id'键,我们可能也会这样做。在这种情况下,生成器调用的最小值可能确实更好:

                  def find_min_id(l):
                      return min(d["id"] for d in l if "id" in d)
                  

                  另一种方法是检查min的结果是否为inf,但这比较麻烦:

                  import math
                  def find_min_id(l):
                      res = min(l, key=lambda d: d.get("id", float('inf')))["id"]
                      if math.isinf(res):
                          raise ValueError("No dict has an 'id' key")
                      return res
                  

                  这篇关于在python中的字典列表中查找最小值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:函数始终返回NONE 下一篇:为什么在Python3.8之前,返回语句中的星号可迭代解压缩是不带括号的无效语法?

                  相关文章

                • <small id='tmw4l'></small><noframes id='tmw4l'>

                • <legend id='tmw4l'><style id='tmw4l'><dir id='tmw4l'><q id='tmw4l'></q></dir></style></legend>
                  <i id='tmw4l'><tr id='tmw4l'><dt id='tmw4l'><q id='tmw4l'><span id='tmw4l'><b id='tmw4l'><form id='tmw4l'><ins id='tmw4l'></ins><ul id='tmw4l'></ul><sub id='tmw4l'></sub></form><legend id='tmw4l'></legend><bdo id='tmw4l'><pre id='tmw4l'><center id='tmw4l'></center></pre></bdo></b><th id='tmw4l'></th></span></q></dt></tr></i><div id='tmw4l'><tfoot id='tmw4l'></tfoot><dl id='tmw4l'><fieldset id='tmw4l'></fieldset></dl></div>
                    <bdo id='tmw4l'></bdo><ul id='tmw4l'></ul>
                  <tfoot id='tmw4l'></tfoot>