Python中数组所有元素的频率计数


在本教程中,我们将编写一个程序来查找数组中所有元素的频率。我们可以通过不同的方法找到它,让我们探索其中的两种。

使用字典

  • 初始化数组。

  • 初始化一个空**字典**。

  • 遍历列表。

    • 如果元素不在字典中,则将其值设置为**1**。

    • 否则将值递增**1**。

  • 通过遍历字典打印元素和频率。

示例

让我们看看代码。

# intializing the list
arr = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# initializing dict to store frequency of each element
elements_count = {}
# iterating over the elements for frequency
for element in arr:
   # checking whether it is in the dict or not
   if element in elements_count:
      # incerementing the count by 1
      elements_count[element] += 1
   else:
      # setting the count to 1
      elements_count[element] = 1
# printing the elements frequencies
for key, value in elements_count.items():
   print(f"{key}: {value}")

输出

如果您运行上述程序,您将获得以下结果。

1: 3
2: 4
3: 5

让我们看看使用collections模块的Counter类的第二种方法。

使用Counter类

  • 导入**collections**模块。

  • 初始化数组。

  • 将列表传递给**Counter**类。并将结果存储在一个变量中。

  • 通过遍历结果打印元素和频率。

示例

请看下面的代码。

# importing the collections module
import collections
# intializing the arr
arr = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# getting the elements frequencies using Counter class
elements_count = collections.Counter(arr)
# printing the element and the frequency
for key, value in elements_count.items():
   print(f"{key}: {value}")

输出

如果您运行上述代码,您将获得与前一个相同的输出。

1: 3
2: 4
3: 5

结论

如果您对本教程有任何疑问,请在评论部分提出。

更新于:2020年2月12日

18K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告