我正在为一家销售iPhone配件的公司创建Python程序。程序将有一个函数,它接受一个列表列表作为参数,其中每个列表元素包含两个描述产品的值——价格和估计质量(整数值)。我想找一个价格比另一件低但质量比另一件高的例子。例如,我将把这个列表传递给我的函数:
some_inventory = [[11.95, 10], [7.95, 12], [6.50, 3],...]
在这个列表中,元素[7.95,12]将比[11.95,10]具有更低的价格和更高的质量。如果这种情况存在,我想返回一个布尔值,如good\u deal=True。你知道吗
在一些目录中,大约有十万个这样的列表元素。我可以使用蛮力的方法来比较每个价格与所有其他价格,然后检查他们的质量对对方,但这是非常缓慢的。我试着先按价格排序,对于价格相同的项目,我会剔除质量较低的项目,只将质量最高的项目添加到新列表中(例如,如果有带有[4.50,2]、[4.50,5]、[4.50,8]的项目,我只将[4.50,8]添加到新列表中)。但这似乎还是太费时了。你知道吗
有没有更有效的算法来做这些比较?它不必在Python、伪代码或C/C++中都是好的。你知道吗
表达式的左侧按价格对交易进行排序,如果价格相等,则按质量对交易进行排序。表达式的右侧按质量对交易进行排序,如果质量相等,则按价格对交易进行排序。你知道吗
如果排序不相等,那么至少有两个交易
[p1, q1]
和[p2, q2]
交换了位置。如果他们交换了位置,p1<p2
和q1>q2
,这意味着[p1, q1]
比[p2, q2]
更划算。如果种类相等,那就没有什么好交易。你知道吗相关问题 更多 >
编程相关推荐