创建字典以跟踪列表中的项目数计数

时间:2018-09-16 22:54:47

标签: python dictionary

我是python新手,我想使用字典来计算x中的项目数。

x = [1,2,1,4,3,2,5,9]

def counts(my_list):
    counts = dict()
    for item in my_list:
        counts[x] = counts.get(item,0)+1

    return counts

counts(x)

任何帮助完成这项工作的帮助都将受到感谢!

3 个答案:

答案 0 :(得分:0)

您应该使用counts.setdefault(item, 0)将默认值设置为0,然后为每个项目以counts[item] += 1递增。

您还可以使用collections.Counter类,做到这一点。

import collections
c = collections.Counter(your_array)

答案 1 :(得分:0)

如果您试图在列表中查找每个元素计数。以下解决方案会有所帮助。

class InstructorSerializer(serializers.ModelSerializer):
    courses = CourseSerializer(
        queryset=Course.objects.order_by('...'),
        many=True,
        read_only=True,
    )

答案 2 :(得分:0)

您还可以:

def counts(my_list):
    counts= {}
    for item in x:
        counts[item] = x.count(item)
    return counts

print(counts(x))

或者和它一起玩吧:

def counts(my_list):
    counts = {item: x.count(item) for item in x}
    return counts

print(counts(x))

输出

(xenial)vash@localhost:~/python/stack_overflow$ python3.7 list_dict.py 
{1: 2, 2: 2, 4: 1, 3: 1, 5: 1, 9: 1}