带有数字和字符串的元组列表

时间:2012-12-15 17:38:17

标签: python list tuples

我有一个元组列表,可能如下所示:

[(23, 'somestr'), (30, 'someotherstr'), (15, 'someotherstr2')]

我需要提取具有最小数量的元组,并获取该元组的字符串。为了找到最小值,我刚刚做了:min([i[0] for i in list])

怎么会得到字符串?嵌套列表理解?我尝试了几种方法,但我不知道如何保留元组索引,或者在列表理解语句中得到它。

4 个答案:

答案 0 :(得分:5)

min(your_list)[1] #would be sufficient

答案 1 :(得分:3)

在这里,您可以直接比较元组。但是,更通用的方法是使用min()key参数:

In [21]: min(l, key=operator.itemgetter(0))[1]
Out[21]: 'someotherstr2'

这里,key=operator.itemgetter(0)提取元组的第0个元素,并使用结果作为键来决定哪个元组是最小的。

答案 2 :(得分:2)

可以比较元组:

>>> (1, 'hello') < (2, 'bye')
True

比较类似字符串的元组:在找到不相等的对之前成对地考虑元素,然后将具有较小元素的元组视为较小。

因此,您可以简单地获得列表的最小值,并返回具有最低第一个值的元组。然后你可以看看第二个元素中的字符串:

least = min(the_list)
print least[1]

答案 3 :(得分:-1)

    python 3.2

    1. min(your_list)

    2. sorted(your_list)[0]

    3. min([(i,v) for i,v in your_list])