python - 从 n 个相等的项目中挑选与最小数字相关的项目

标签 python python-3.x list

我不知道如何解释,但我会尝试一下。我有一个 list1 = [('Lista-A', 2000), ('Lista-X', 1000), ('Lista-Z', 5000)]) 然后我将有一个

list2 = [['Lista-A', 2000.0],
 ['Lista-A', 1000.0],
 ['Lista-A', 666.6666666666666],
 ['Lista-A', 500.0],
 ['Lista-A', 400.0],
 ['Lista-A', 333.3333333333333],
 ['Lista-X', 1000.0],
 ['Lista-X', 500.0],
 ['Lista-X', 333.3333333333333],
 ['Lista-X', 250.0],
 ['Lista-X', 200.0],
 ['Lista-X', 166.66666666666666],
 ['Lista-Z', 5000.0],
 ['Lista-Z', 2500.0],
 ['Lista-Z', 1666.6666666666667],
 ['Lista-Z', 1250.0],
 ['Lista-Z', 1000.0],
 ['Lista-Z', 833.3333333333334]]

现在我需要从列表中选择n个最大的项目2,但是每当2个或3个或更多项目具有相同的数值时,该函数将需要返回到第一个列表并检查其中哪个项目具有最小的值如果从具有相同值的项目中选择具有相同“名称”(Lista-A、Z 或 X)的项目,则必须从第一个列表中选择具有最小数值的项目。我不知道我需要做什么。 我已经尝试对列表进行排序,但后来我不知道继续前进。

对于本例,我需要 6 个最大值,因此预期结果为

 list3 = [['Lista-Z', 5000.0],
 ['Lista-Z', 2500.0],
 ['Lista-A', 2000.0],
 ['Lista-Z', 1666.6666666666667],
 ['Lista-Z', 1250.0],
 ['Lista-x', 1000.0]]

最佳答案

如果我理解正确的话

list1 = [('Lista-A', 2000), ('Lista-X', 1000), ('Lista-Z', 5000)]
list1 = dict(list1)  #Converted to dict for easy lookup

list2 = [['Lista-A', 2000.0],
 ['Lista-A', 1000.0],
 ['Lista-A', 666.6666666666666],
 ['Lista-A', 500.0],
 ['Lista-A', 400.0],
 ['Lista-A', 333.3333333333333],
 ['Lista-X', 1000.0],
 ['Lista-X', 500.0],
 ['Lista-X', 333.3333333333333],
 ['Lista-X', 250.0],
 ['Lista-X', 200.0],
 ['Lista-X', 166.66666666666666],
 ['Lista-Z', 5000.0],
 ['Lista-Z', 2500.0],
 ['Lista-Z', 1666.6666666666667],
 ['Lista-Z', 1250.0],
 ['Lista-Z', 1000.0],
 ['Lista-Z', 833.3333333333334]]
list2.sort(key=lambda x: (x[1], -list1.get(x[0], x[0])), reverse=True)

print(list2[:6])

输出:

[['Lista-Z', 5000.0],
 ['Lista-Z', 2500.0],
 ['Lista-A', 2000.0],
 ['Lista-Z', 1666.6666666666667],
 ['Lista-Z', 1250.0],
 ['Lista-X', 1000.0]]

关于python - 从 n 个相等的项目中挑选与最小数字相关的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356530/

相关文章:

python - “jupyter notebook”命令在 Linux 上不起作用

java - 实例化用户定义类型集合的约定是什么?

python - csv 中第一位数字的数字频率,不导入

python - 在 Django 中生成给定查询集的所有可能子集

python - 使用值出现次数在 Pandas 中创建数据透视表

python - 当使用 tensorflow 和我自己的数据时如何决定批量大小?

python - 如何从 GCP 存储桶读取 Apache Beam 中的多个文件

python - 有没有办法将 numpy.where() 用于将 NaN 值作为无数据的栅格数据?

c - 使用指针访问结构内部的结构

python - tkinter 中的属性错误