在Python中,如何在一个元素列表中搜索一个值,然后在该值之前获取该元素?

2024-04-24 06:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由以下人员创建的元素列表:

if x > 2:
            pricePerUnit.append(name)
            pricePerUnit.append(price/quantity)
bestValue = list.count(min(pricePerUnit))

如何在获取值的同时获取每个值前面的元素?你知道吗


Tags: name元素列表if人员countminprice
1条回答
网友
1楼 · 发布于 2024-04-24 06:34:49

最好的办法是以不同的方式构造pricePerUnit列表,将这两个值作为一个元组存储在一起:

if x > 2:
    pricePerUnit.append((name, price / quantity))

这样,当您找到最有价值的项目时,您也可以找到名称。要在列表中找到最小值,现在需要向min提供一个key参数。此key函数应提取要比较的值以查找最小值,在本例中,该值是元组中的第一项(name是元组中的第0项):

bestValueName, bestValue = min(pricePerUnit, key=lambda ppu: ppu[1])

要查找所有具有最佳价值的项目,应先查找最佳价值,然后再查找所有具有该价值的项目:

_, bestValue = min(pricePerUnit, key=lambda ppu: ppu[1])
bestValueItems = filter(lambda ppu: ppu[1] == bestValue, pricePerUnit)

相关问题 更多 >