我们说我有一个客户ID列表和他购买的商品类别:
[[ID0,0],[ID1,1],...]
客户可以多次出现,并且他也可能多次购买相同类型的商品。
例如,我们的列表中可能有[ID0,1],[ID0,2],[ID0,1],[ID1,1],......。
我想构建一个列表,以便list [0] = customer ID和list [1] =他购买的最常见的项目类型,这意味着customerID只出现在列表中一次。
我该怎么做?
答案 0 :(得分:0)
除非我遗漏了什么,否则你不能为此目的使用字典吗? 这基本上可以确保您不会重复,并且使用max函数可以获得maxiumum值。如果找不到密钥,.get()方法可确保获得None。
当然,如果需要,您可以将字典格式化为列表。
data = [
['ID0', 1], ['ID0', 2], ['ID0', 1], ['ID1', 1],
['ID2', 5], ['ID5', 6]
]
dict = {}
for item in data:
customer_id = item[0]
current_quantity = item[1]
#find maximum amount of what's already in dictionary vs current
dict[customer_id] = max(current_quantity, dict.get(customer_id))