我有这样一个清单:
[
('abilty', 'ability', 14, 1),
('aand', 'wand', 14, 1),
('aand', 'sand', 14, 1),
('aand', 'land', 272, 1),
('aand', 'hand', 817, 1),
('aand', 'and', 38093, 1),
('aand', 'band', 38093, 1),
('aand', 'iand', 38093, 1),
('aand', 'fand', 38093, 1)]
在一个单词的列表中,如果有多个值(例如aand有8个匹配值),那么我想根据第3个属性对它们进行排序,并选择第一个最高的值。例如,在这个示例中,我的结果应该是
[
('abilty', 'ability', 14, 1),
('aand', 'and', 38093, 1),
]
我尝试了一些东西,但不幸的是它不起作用。你能帮我吗?谢谢。你知道吗
首先对列表排序:
现在使用
itertools.groupby
每个组只获取一个项目:上述方法的总复杂度为
O(NlogN)
。你知道吗您也可以在这里使用
collections.defauldict
,复杂性O(N)
:在本例中使用
itemgetter
对你来说
相关问题 更多 >
编程相关推荐