gpt4 book ai didi

python - 使用列表值对字典进行分组

转载 作者:行者123 更新时间:2023-11-28 21:50:37 27 4
gpt4 key购买 nike

我有一本字典,其中列表是值。我想根据列表中的某些值过滤数据。例如。 . .

inventory = {'A':['Toy',3], 'B':['Toy',8], 'C':['Cloth',15], 'D':['Cloth',9], 'E':['Toy',11]}

我想创建另一个字典,它只显示价格最高的商品。 . .

inventoryFiltered = {'C':['Cloth',15], 'E':['Toy',11]}

我应该使用什么代码将库存转换为 inventoryFiltered?

最终结果应该为每种商品类型(例如“布料”、“玩具”、“电子产品”、“食品”、“鞋子”)设置最高价格

我的系统只有这些模块可用。

bisect
cmath
collections
datetime
functools
heapq
itertools
math
numpy
pandas
pytz
Queue
random
re
scipy
statsmodels
sklearn
talib
time
zipline

此外,我还想完成一个步骤。假设我还有一个数据元素(我正在添加元素的库存天数(它在商店或仓库中的天数)。

inventory = {'A':['Toy',3, 30], 'B':['Toy',8, 40], 
'C':['Cloth',15, 50], 'D':['Cloth',9, 60], 'E':['Toy',11, 70]}.

我希望它做完全相同的事情。但保留最后一个元素(库存天数)

inventoryFiltered = {'C':['Cloth',15, 50], 'E':['Toy',11, 70]}

最佳答案

您可以对字典的项目进行排序:

inventory = {
'A': ['Toy', 3, 30],
'B': ['Toy', 8, 80],
'C': ['Cloth', 15, 150],
'D': ['Cloth', 9, 90],
'E': ['Toy', 11, 110]
}

items = sorted(inventory.items(), key=lambda item: item[1][1])

most_expensive_by_category = {item[0]: (key, item) for key, item in items}

most_expensive = dict(most_expensive_by_category.values())

结果:

{'C': ['Cloth', 15, 150], 'E': ['Toy', 11, 110]}

使用 items = sorted(inventory.items(), key=lambda item: item[1][1]) 我们按价格对输入字典的项目进行排序。由于排序顺序,most_expensive_by_category 构造将只保留特定类别中最昂贵的项目。

关于python - 使用列表值对字典进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759951/

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