根据最大值删除元组列表中的重复项

即食

假设我有一个这样的列表tuples

[('Machine1', 88), ('Machine2', 90), ('Machine3', 78), ('Machine1', 90), ('Machine3', 95)]

我想过滤列表,使我只拥有与每个tuple配对有关的最高值因此,在此示例中,过滤后的列表为:

[('Machine2', 90),('Machine1', 90), ('Machine3', 95)]

我基本上想按最高值删除重复项。我知道set只能删除完全相同的重复项,因此在这里我将无法做到。我认为我可以使用的另一种方法是使用adictionary并在迭代列表时更新它(如果看到更高的值)。但是,有什么更Python的方式来解决这个问题?

pp

这是使用的一种解决方案collections.defaultdict这个想法是迭代您的元组列表并追加到列表中。然后zipmap+max一起使用以创建所需的结果。

from collections import defaultdict

L = [('Machine1', 88), ('Machine2', 90), ('Machine3', 78),
     ('Machine1', 90), ('Machine3', 95)]

d = defaultdict(list)

for name, num in L:
    d[name].append(num)

res =  list(zip(d, map(max, d.values())))

结果

[('Machine1', 90), ('Machine2', 90), ('Machine3', 95)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据值之一从元组列表中删除重复项

Python-根据列的最大值删除重复项

根据列中的最大值有条件地删除Excel中的重复项

根据第二个索引的最大值删除列表中的元组

删除对象列表中的重复项,并保持最大值和顺序

删除元组列表中的重复项和求和值

获取元组列表中的最大值

从列表中的元组中删除重复项

从元组列表中获取每个元组的最大值列表

如何在保持元组顺序的同时根据元组的索引值从列表中删除重复的元组?

从元组列表中删除重复项

如何删除元组列表中的重复项

从元组列表中删除重复项

Python根据值从字典列表中删除重复项

在元组列表中获取元素元组的最大值

在元组列表中查找重复项的有效方法,对元组的值求和,并删除使用过的重复元组

根据R中的最大值(对于多列)选择重复项

根据元组中的字典值删除元组列表中的元组

从基于文件的列和行中的最大值中删除重复项 -pandas

R:在保留最大值的同时删除重复项

根据Pandas df中另一列中的最大值删除重复行

元组列表中的最小值和最大值

根据两列A,B从数据框中删除重复项,并在另一列C中保留具有最大值的行

根据元组中的索引删除重复的元组值

在Python中的元组列表中找到最大值

从元组列表中获取最小最大值

从元组列表中查找最大值的所有出现?

从字典列表中删除重复的键,仅保留最大值的那个键值

我想提取重复项中的最大值