【问题标题】:Python: getting lowest integer in list of tuplesPython:获取元组列表中的最小整数
【发布时间】:2012-05-10 22:01:12
【问题描述】:

我目前的计划是确定哪个是使用.curselection() 突出显示的多个Tkinter 列表框中的第一个条目,并将所有结果元组组合到一个列表中,产生以下结果:

tupleList = [(), (), ('24', '25', '26', '27'), (), (), (), ()]

我想知道如何确定最小整数。使用.min(tupleList) 仅返回(),这是列表中的最低条目,但我正在寻找一种返回24 的方法。

获取列表中任何元组中最小整数的正确方法是什么?

【问题讨论】:

  • 使用.extend 方法而不是将项目附加到列表中。您将获得一个整数列表,然后使用min() 轻松找到最小值。

标签: python list integer tuples min


【解决方案1】:
>>> from itertools import chain
>>> nums = [(), (), ('24', '25', '26', '27'), (), (), (), ()]
>>> min(map(int,chain.from_iterable(nums)))
24

【讨论】:

    【解决方案2】:
    >>> nums = [(), (), ('24', '25', '26', '27'), (), (), (), ()]
    >>> min(int(j) for i in nums for j in i)
    24
    

    【讨论】:

    • 谢谢 rubik 和 jamylak,这两个解决方案都很棒。非常感谢 gnibbler,这是解决这种情况的完美解决方案,无需编辑任何东西。
    • @jamylak,如果 nums 从生成器返回,您的解决方案将是有意义的。尤其是在处理大量数据时
    【解决方案3】:
    >>> min(reduce(lambda x, y: x + y, nums))
    

    【讨论】:

    • 如果 nums 有一个像 '100' 这样的数字则不起作用,因为它是按字母顺序检查的,因为它仍然是 str。例如,在 nums = [(), (), ('24', '25', '26', '27'), (), (), (), (),('100',)] 上进行测试。还要小心使用reduce,因为它在 Python 中不受欢迎,因为几乎每项任务通常都有更好的选择。
    • 其实'100'小于'24',我不明白你的意思。
    • 我很确定他想将字符串作为数字检查,因为他想找到最小值。他在帖子中提到:'determine the lowest integer'
    • @jamylak 结构中没有整数,但是您的 cmets 有意义。
    猜你喜欢
    • 2016-08-01
    • 2019-04-04
    • 2020-05-19
    • 2023-03-13
    • 2021-11-30
    • 2015-04-19
    • 2011-07-15
    • 2017-05-24
    • 2013-02-10
    相关资源
    最近更新 更多