Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个字典,将一个对象映射到它在列表中出现的次数?用Python_Python_List_For Loop_Dictionary_List Comprehension - Fatal编程技术网

创建一个字典,将一个对象映射到它在列表中出现的次数?用Python

创建一个字典,将一个对象映射到它在列表中出现的次数?用Python,python,list,for-loop,dictionary,list-comprehension,Python,List,For Loop,Dictionary,List Comprehension,所以基本上我希望每个唯一的对象都是一个键,我希望对应的值是该对象在列表中出现的次数 What I have: [obj1, obj2, obj2, obj2, obj3, obj4, obj4] What I want: {obj1 : 1, obj2 : 3, obj3 : 1, obj4 : 2} 我知道我会如何使用for循环来实现这一点,但是有没有更好的方法或者更具python风格的方法来使用理解之类的东西呢?谢谢 是专门为此任务设计的: from collections import

所以基本上我希望每个唯一的对象都是一个键,我希望对应的值是该对象在列表中出现的次数

What I have: [obj1, obj2, obj2, obj2, obj3, obj4, obj4]
What I want: {obj1 : 1, obj2 : 3, obj3 : 1, obj4 : 2}
我知道我会如何使用for循环来实现这一点,但是有没有更好的方法或者更具python风格的方法来使用理解之类的东西呢?谢谢

是专门为此任务设计的:

from collections import Counter
lst = [obj1, obj2, obj2, obj2, obj3, obj4, obj4]
counter = Counter(lst)
下面是一个演示:

>>> from collections import Counter
>>> lst = [1, 2, 2, 2, 3, 4, 4]
>>> counter = Counter(lst)
>>> counter
Counter({2: 3, 4: 2, 1: 1, 3: 1})
>>> counter[1]
1
>>> counter[2]
3
>>> counter[3]
1
>>> counter[4]
2
>>>
是专门为此任务设计的:

from collections import Counter
lst = [obj1, obj2, obj2, obj2, obj3, obj4, obj4]
counter = Counter(lst)
下面是一个演示:

>>> from collections import Counter
>>> lst = [1, 2, 2, 2, 3, 4, 4]
>>> counter = Counter(lst)
>>> counter
Counter({2: 3, 4: 2, 1: 1, 3: 1})
>>> counter[1]
1
>>> counter[2]
3
>>> counter[3]
1
>>> counter[4]
2
>>>

请注意,您需要列表中的所有对象都是可哈希的,才能使其工作…请注意,您需要列表中的所有对象都是可哈希的,才能使其工作。。。