计算列表中的元素

时间:2017-02-21 02:11:39

标签: python list numpy

我们说我有一个客户ID列表和他购买的商品类别:

[[ID0,0],[ID1,1],...]

客户可以多次出现,并且他也可能多次购买相同类型的商品。

例如,我们的列表中可能有[ID0,1],[ID0,2],[ID0,1],[ID1,1],......。

我想构建一个列表,以便list [0] = customer ID和list [1] =他购买的最常见的项目类型,这意味着customerID只出现在列表中一次。

我该怎么做?

1 个答案:

答案 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))