0

我正在寻找一种方法来选择数字列表中的主要值以获取属性。

data
[(14549.020163184512, 58.9615170298556),
 (18235.00848249135, 39.73350448334156),
 (12577.353023695543, 37.6940001866714)]

我希望提取 (18235.00848249135, 39.73350448334156) 以获得 39.73350448334156。前一个列表(数据)是从一个空列表 data=[] 派生的。它是循环存储数据的最佳格式吗?

4

4 回答 4

3

您可以通过以下方式获得它:

max(data)[1]

因为默认情况下,元组将按第一个元素进行比较。

于 2012-12-10T11:31:49.580 回答
2
max(data)[1]

对元组进行排序根据第一个元素排序,然后是第二个。这意味着max(data)根据第一个元素进行排序。

[1]然后从“最大”对象返回第二个元素。

于 2012-12-10T11:31:54.240 回答
2

嗯,这似乎很容易还是什么?) max(a)[1] ?

于 2012-12-10T11:32:30.360 回答
1

您实际上可以对列表的任何属性进行排序。您可以使用itemgetter。另一种排序方法是使用明确的比较函数(当您可能需要多个级别的 itemgetter 时,因此下面的代码更具可读性)。

dist = ((1, {'a':1}), (7, {'a': 99}), (-1, {'a':99}))

def my_cmp(x, y):
    tmp = cmp(x[1][a], y[1][a])
    if tmp==0:
        return (-1 * cmp(x[0], y[0]))
    else: return tmp

sorted = dist.sort(cmp=my_cmp) # sorts first descending on attr "a" of the second item, then sorts ascending on first item 
于 2012-12-10T12:19:07.953 回答