代码之家  ›  专栏  ›  技术社区  ›  Chaban33

清点行数并用较少的数量打印

  •  -3
  • Chaban33  · 技术社区  · 6 年前
    class Line(models.Model):
        _name = "line"
    
    line1.quantity = 5
    line2.quantity = 8
    line3.quantity = 3
    
    def count_line(self):
        for line in self:
            # i need to count all lines and print that line in the end #that has least quantity.
    

    这更像是一个伪代码,我只想知道如何做到这一点的逻辑。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Rory Daulton    6 年前

    因为你没有限制 quantity 属性,此代码应处理边缘情况。注意它用最小的 ,并返回行的总数。如果没有行,则打印输出为 None 还有号码 0 被退回。如果有一个下限 ,代码可以简化。

    def count_line(self):
        """Count all lines, print that line in the end that has least
        quantity, and return the number of lines."""
        counter = 0
        result = None
        for counter, line in enumerate(self):
            if result is None or result.quantity > line.quantity:
                result = line
        print(result)
        return counter
    
        2
  •  1
  •   Gabriel Ben Compte    6 年前

    如果您有一个包含所有行的列表,您可以执行以下操作:

    line_list.sort(key=lambda x: x.quantity, reverse=False)
    less_quantity = line_list[0].quantity