📌  相关文章
📜  Python|将每个数字的出现添加为子列表

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

Python|将每个数字的出现添加为子列表

给定一个数字列表,任务是计算每个元素的出现次数并添加为子列表。

例子:

Input: l1 = [3, 5, 7, 2, 3, 5, 9.1]
Output: [[3, 2], [5, 2], [7, 1], [2, 1], [9.1, 1]]

Input: l1 = [1, 1, 2, 2, 3, 1]
Output: [[1, 3], [2, 2], [3, 1]]

注意:格式输出二维列表为 [['item1', 'count1'], ['item2', 'count2'], ..., ['itemN', 'countN']]。

代码 #1:使用 count() 方法

# Python program to add the occurrence
# of each number as sublists
def count_occur(list1, **kwargs):
      
    # iterate over list item
    for i in list1:
        row =[]
        ct = 0
      
        # count function will count occurrence
        ct = list1.count(i)
        row.append(i)
        row.append(ct)
        # append 1d list items to 2d list
        list2.append(row)
      
    # below code is to eliminate 
    # repetitive list items
    for j in list2:
        if j not in unq_l2:
            unq_l2.append(j)
              
    return unq_l2
  
# Driver Code
l1 = [3, 5, 7, 2, 3, 5, 9.1]
list2 = []
unq_l2 = []
print(count_occur(l1))
输出:
[[3, 2], [5, 2], [7, 1], [2, 1], [9.1, 1]]


代码 #2:使用循环方法

def count_occur(list1):
  
    for i in range(0, len(l1)):
        a = 0
        row =[]
        if i not in l:
            for j in range(0, len(l1)):
  
                # matching items from both lists
                if l1[i]== l1[j]:
  
                    # on match counter increments by 1
                    a = a + 1
  
            row.append(l1[i])
            row.append(a)
  
            # append function will append 
            # 1d list items to 2d list
            l.append(row)
              
    # below code is to eliminate
    # repetitive list items    
    for j in l:
        if j not in unq_l:
            unq_l.append(j)
              
    return unq_l
  
# Driver code        
l1 =[3, 5, 7, 2, 3, 5, 9.1]
l =[]
unq_l =[]
  
print(count_occur(l1)) 
输出:
[[3, 2], [5, 2], [7, 1], [2, 1], [9.1, 1]]

代码 #3:使用 counter() 方法

# Python program to add the occurrence
# of each number as sublists using counter() method
  
from collections import Counter
def count_occurence(l):
    c = Counter(l)
    l1 = []
    for k,v in c.items():
        l1.append([k,v])
    return l1
  
  
# Driver code     
l = [3, 5, 7, 2, 3, 5, 9.1]
print(count_occurence(l))
输出:
[[2, 1], [3, 2], [9.1, 1], [5, 2], [7, 1]]