【问题标题】:Return Object with Greater Parameter返回具有更大参数的对象
【发布时间】:2022-01-13 10:15:33
【问题描述】:

我有两个图像:onetwo。我想确定哪个是最大的和最小的,并将它们分别分配给bigsmall。什么是最干净和 Pythonic 的解决方案?

我的解决方法如下:

one = Image.open(url)
two = Image.open(url)

big, small = (one, two) if one.width > two.width else (two, one)

【问题讨论】:

  • 该解决方案看起来不错。
  • 这个问题是基于意见,你可能想看看codereview.stackexchange.com。话虽这么说,这确实是一个很好的解决方案。

标签: python python-3.x oop


【解决方案1】:

如果您正在寻找更 Python 的方法,您可以考虑使用 sorted 的强大功能来检查哪个文件更大。这样做的好处是它可以很容易地扩展为适用于图像列表,而不仅仅是比较两个项目。

images = [Image.open(url1), Image.open(url2), Image.open(url3)]

sorted_images = sorted(images, key=lambda img: img.width, reverse=True)
big, second_biggest = sorted_images[0:2]

上面的例子展示了如何使用类实例的width 属性将图像从大到小排序。 reverse=True 告诉 sorted 按最大最小顺序对项目进行排序。 最后一行只是从列表中获取最大的两个元素并将它们存储在它们自己的变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多