我正在寻找一种方法来选择数字列表中的主要值,以获得属性。
data
[(14549.020163184512, 58.9615170298556),
(18235.00848249135, 39.73350448334156),
(12577.353023695543, 37.6940001866714)]
我希望提取(18235.00848249135,39.73350448334156)以获得39.73350448334156。先前的列表(数据)是从空列表data = []导出的。列表是在循环中存储数据的最佳格式吗?
答案 0 :(得分:3)
你可以通过以下方式获得:
max(data)[1]
因为默认情况下,元组将通过第一个元素进行比较。
答案 1 :(得分:2)
max(data)[1]
对元组进行排序根据第一个元素排序,然后排序第二个元素。这意味着max(data)
根据第一个元素进行排序。
[1]
返回“maximal”对象中的第二个元素。
答案 2 :(得分:2)
答案 3 :(得分: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