【问题标题】:Get min int in a list of tuples of (int, string) in Python [duplicate]在Python中的(int,string)的元组列表中获取min int [重复]
【发布时间】:2015-03-07 19:36:37
【问题描述】:

我想从元组列表(int, string) 中提取具有最小值int 的元组的string 值。

例如,如果我有这个列表:

l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)]

输出应该是'c',因为最小整数在元组('c', 1)中。

我尝试了不同的方法,到目前为止都没有奏效。谢谢。

【问题讨论】:

  • I've tried different things, none worked so far. 发帖尝试。
  • 好吧,我已经尝试过在这里找到的答案:stackoverflow.com/questions/17468923/… 但无法理解正在发生的事情并根据我的情况进行调整,并且还尝试了 zipmap如下所示的功能:stackoverflow.com/questions/4002796/…
  • 试试这个 l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)] p=[min( l[i]) for i in range(len(l))] l[p.index(min(p))] 使用列表索引和
  • 或者,您可以使用字典,因为您的元组列表看起来很像:d = dict(l) 然后min(d, key=d.get)

标签: python list tuples


【解决方案1】:

尝试使用带有键 lambda 的 min() 函数:

min_tuple = min(l, key=lambda x:x[1])

这利用了 min 函数,它返回可迭代的最小元素。使用了一个内联 lambda 函数,它是一种元组元素的比较器,所以我将作为键返回元组的第二项(int)。因此,当使用该键函数执行 min 函数时,最小元组是包含最小整数的元组。

【讨论】:

    【解决方案2】:

    您可以为此使用min()

    In [1]: l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)]
    
    In [2]: min(l, key=lambda t:t[1])
    Out[2]: ('c', 1)
    

    【讨论】:

      猜你喜欢
      • 2015-04-19
      • 2018-02-05
      • 1970-01-01
      • 2016-05-23
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多