【发布时间】:2019-02-12 06:14:19
【问题描述】:
假设我有一个这样的tuples 列表:
[('Machine1', 88), ('Machine2', 90), ('Machine3', 78), ('Machine1', 90), ('Machine3', 95)]
我想过滤列表,以便我只有与每个 tuple 配对相关的最高值。所以在这个例子中,过滤后的列表是:
[('Machine2', 90),('Machine1', 90), ('Machine3', 95)]
我基本上想按最高值删除重复项。我知道set 只删除精确的重复项,所以我不能在这里这样做。我认为我可以使用的另一种方法是使用dictionary 并在迭代列表时更新它,如果看到更高的值。但是,有什么更 Pythonic 的方式来解决这个问题?
【问题讨论】:
-
dict 是个好方法;任何可以为您提供
groupby运算符的数据结构也是如此。 Stack Overflow 不是一个设计网站——试一试,让我们看看你的代码!
标签: python list dictionary set tuples