📜  Python|列表元素的频率分组

📅  最后修改于: 2022-05-13 01:55:16.340000             🧑  作者: Mango

Python|列表元素的频率分组

有时,在使用列表时,我们可能会遇到一个问题,我们需要以元组列表的形式对元素及其频率进行分组。让我们讨论可以执行此任务的某些方式。

方法#1:使用循环
这是执行此特定任务的蛮力方法。在此,我们迭代每个元素,检查其他列表是否存在,如果存在,则增加它的计数并放入元组。

# Python3 code to demonstrate working of
# Frequency grouping of list elements
# using loop
  
# initialize list 
test_list = [1, 3, 3, 1, 4, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Frequency grouping of list elements
# using loop
res = []
temp = dict()
for ele in test_list:
    if ele in temp:
        temp[ele] = temp[ele] + 1 
    else : 
        temp[ele] = 1
for key in temp:
    res.append((key, temp[key]))
      
# printing result
print("Frequency of list elements : " + str(res))
输出 :
The original list : [1, 3, 3, 1, 4, 4]
Frequency of list elements : [(1, 2), (3, 2), (4, 2)]

方法 #2:使用Counter() + items()
两种功能的组合可用于执行此任务。它们使用内置结构执行此任务,并且是执行此任务的简写。

# Python3 code to demonstrate working of
# Frequency grouping of list elements
# using Counter() + items()
from collections import Counter
  
# initialize list 
test_list = [1, 3, 3, 1, 4, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Frequency grouping of list elements
# using Counter() + items()
res = list(Counter(test_list).items())
  
# printing result
print("Frequency of list elements : " + str(res))
输出 :
The original list : [1, 3, 3, 1, 4, 4]
Frequency of list elements : [(1, 2), (3, 2), (4, 2)]