-
手掌心
>>> from itertools import groupby
>>> [max(g, key=lambda i: i[1]) for k, g in groupby(data, lambda i: i[0])]
[['Val1', 1, 'X'],
['Val2', 2, 'Y'],
['Val3', 2, 'Y'],
['Val4', 3, 'Z'],
['Val5', 3, 'Z'],
['Val6', 3, 'Z']]
-
jeck猫
使用熊猫x = [['Val1', 1, 'X'], ['Val2', 1, 'X'], ['Val2', 2, 'Y'], ['Val3', 2, 'Y'], ['Val4', 2, 'Y'], ['Val4', 3, 'Z'], ['Val5', 3, 'Z'], ['Val6', 3, 'Z']]import pandas as pdpd.DataFrame(x).sort_values([0, 1]).drop_duplicates(subset=[0], keep='last').values.tolist()
-
慕斯709654
步骤1:根据第二个属性排序。步骤2:根据第一个属性进行排序。由于排序在 python 中是“稳定的”,因此步骤 1 中的排序顺序将在步骤 2 之后保留。l = # list of similarly formatted lists
l = sorted(l, key=itemgetter(1))
l = sorted(l, key=itemgetter(0))或者,编写您自己的比较键函数。我认为这实际上应该有效,因为元组是按从左到右的顺序进行比较的:l = sorted(l, key=tuple)