【发布时间】:2021-11-14 05:35:11
【问题描述】:
是否可以计算列表中的重复项?
假设我有这个列表:
my_list = [1, 2, 3, 6, 2, 1, 6]
我想要这样的输出:
my_list_duplicates = {1: 2, 2: 2, 3: 1, 6: 2}
这可能吗?
【问题讨论】:
-
这能回答你的问题吗? python equivalent of R table
标签: python
是否可以计算列表中的重复项?
假设我有这个列表:
my_list = [1, 2, 3, 6, 2, 1, 6]
我想要这样的输出:
my_list_duplicates = {1: 2, 2: 2, 3: 1, 6: 2}
这可能吗?
【问题讨论】:
标签: python
最简单的方法是使用标准库中的collections.Counter object:
>>> import collections
>>> my_list = [1, 2, 3, 6, 2, 1, 6]
>>> dict(collections.Counter(my_list))
{1: 2, 2: 2, 3: 1, 6: 2}
【讨论】:
collections.Counter 完全符合您的要求。
【讨论】:
如果您不想使用内置函数,则可以使用哈希映射来存储值的计数,因为您遍历列表
my_list = [1, 2, 3, 6, 2, 1, 6]
my_list_duplicates = {}
for i in my_list:
if my_list_duplicates.get(i):
my_list_duplicates[i] += 1
else:
my_list_duplicates[i] = 1
print(my_list_duplicates)
输出
{1: 2, 2: 2, 3: 1, 6: 2}
【讨论】:
1.您可以使用集合包中的计数器。
from collections import Counter
my_list = [1, 2, 3, 6, 2, 1, 6]
list_1 = Counter(my_list)
print(list_1)
2.second 选项是您可以在循环中对每个值进行迭代以找到其重复项并将它们存储在字典中。
my_list = [1, 2, 3, 6, 2, 1, 6]
duplicate_dict = {i: my_list.count(i) for i in my_list
print(duplicate_dict)
【讨论】:
您可以使用count:
my_list_duplicates = {i: my_list.count(i) for i in my_list}
【讨论】: