【问题标题】:Count duplicates python计算重复python
【发布时间】: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


【解决方案1】:

最简单的方法是使用标准库中的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}

【讨论】:

    【解决方案2】:

    collections.Counter 完全符合您的要求。

    【讨论】:

      【解决方案3】:

      如果您不想使用内置函数,则可以使用哈希映射来存储值的计数,因为您遍历列表

      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}
      

      【讨论】:

        【解决方案4】:

        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)
        

        【讨论】:

          【解决方案5】:

          您可以使用count

          my_list_duplicates = {i: my_list.count(i) for i in my_list}
          

          【讨论】:

          • 这是非常低效的。
          猜你喜欢
          • 2016-05-22
          • 1970-01-01
          • 2013-04-28
          • 1970-01-01
          • 2019-06-28
          • 2018-06-29
          • 2014-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多