gpt4 book ai didi

python - 获取键总数小于或等于 X 的前 5 个值

转载 作者:太空狗 更新时间:2023-10-29 21:41:24 26 4
gpt4 key购买 nike

目前我有一个可以购买的元素列表如下:

my_list = [
('Candy', 1.0, 20.5),
('Soda', 3.0, 10.25),
('Coffee', 1.2, 20.335),
('Soap', 1.2, 11.5),
('Spoon', 0.2, 2.32),
('Toast', 3.2, 12.335),
('Toothpaste', 3, 20.5),
('Creamer', .1, 5.5),
('Sugar', 2.2, 5.2),
]

每个项目都是这样设置的:

('Item Name', ItemCost, ItemValue)

我有一个列表,其中包含前 5 个 ItemValue 的项目。

print nlargest(5, my_list, key=itemgetter(2))
>>> [
('Candy', 1.0, 20.5),
('Toothpaste', 3, 20.5),
('Coffee', 1.2, 20.335),
('Toast', 3.2, 12.335),
('Soap', 1.2, 11.5),
]

我正在尝试检索一个结果,其中我获得总计前 5 个 ItemValue,其中前 5 个总计 ItemCost 等于或小于 6。

有什么建议吗?

最佳答案

您可以先过滤,然后在过滤列表中使用所有以下nlargest

f = [(a,b,c) for (a,b,c) in my_list if b <= 6]

但是对于这样的数据操作,pandas 可能非常有用。举个例子

df = pd.DataFrame(my_list, columns=('ItemName', 'ItemCost', 'ItemValue'))

ItemName ItemCost ItemValue
0 Candy 1.0 20.500
1 Soda 3.0 10.250
2 Coffee 1.2 20.335
3 Soap 1.2 11.500
4 Spoon 0.2 2.320
5 Toast 3.2 12.335
6 Toothpaste 3.0 20.500
7 Creamer 0.1 5.500
8 Sugar 2.2 5.200

>>> df[df.ItemCost <= 6]

ItemName ItemCost ItemValue
0 Candy 1.0 20.500
1 Soda 3.0 10.250
2 Coffee 1.2 20.335
3 Soap 1.2 11.500
4 Spoon 0.2 2.320
5 Toast 3.2 12.335
6 Toothpaste 3.0 20.500
7 Creamer 0.1 5.500
8 Sugar 2.2 5.200

>>> df[df.ItemCost <= 6].nlargest(n=5, columns=['ItemValue'])


ItemName ItemCost ItemValue
0 Candy 1.0 20.500
6 Toothpaste 3.0 20.500
2 Coffee 1.2 20.335
5 Toast 3.2 12.335
3 Soap 1.2 11.500

如果你愿意,你可以先获取 ItemCostnsmallest,然后获取nlargest

df.nsmallest(n=5, columns=['ItemCost']).nlargest(n=5, columns=['ItemValue'])    

ItemName ItemCost ItemValue
0 Candy 1.0 20.500
2 Coffee 1.2 20.335
3 Soap 1.2 11.500
7 Creamer 0.1 5.500
4 Spoon 0.2 2.320

关于python - 获取键总数小于或等于 X 的前 5 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52488615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com