如何分别汇总列表中的项目?

时间:2018-07-22 02:03:00

标签: python list

我正在尝试创建一个函数,该函数返回列表中的项目类型和计数项目。

我有:

def count_items(column_list):
    item_types = []
    count_items = []

    item_types = set(column_list)
    print(item_types)
    count_items = ????

    return item_types, count_items

item_types的回报是:

{'', 'Female', 'Male'}

如果我对len使用count_items函数,它将返回三个值的总和,例如{1500},但是我需要分别使用它们,例如{150, 550, 800} 我该怎么用?

2 个答案:

答案 0 :(得分:2)

您可以使用collections Counter

from collections import Counter

my_list_of_items = ['a', 'a', 'b']

counter = Counter(my_list_of_items)

---> {'a': 2, 'b': 1}

答案 1 :(得分:2)

您只能通过列表理解和设置来返回计数

def count_items(column_list):

    item_types = set(column_list)

    return [column_list.count(item) for item in item_types]

column_list=['male','male','','','','female','male','female']


print(count_items(column_list))

输出:

[3, 2, 3]

或两者都

def count_items(column_list):

    item_types = set(column_list)

    return [[item,column_list.count(item)] for item in item_types]

输出:

[['', 3], ['male', 3], ['female', 2]]