Computer >> Máy Tính >  >> Lập trình >> Python

Thêm sự xuất hiện của mỗi số dưới dạng danh sách con trong Python

Chúng tôi có một danh sách có các phần tử là số. Nhiều phần tử hiện diện nhiều lần. Chúng tôi muốn tạo danh sách phụ để tần suất của mỗi phần tử cùng với các phần tử đó.

Với cho và nối

Trong cách tiếp cận này, chúng tôi sẽ so sánh từng phần tử trong danh sách với mọi phần tử khác sau nó. Nếu có một kết quả phù hợp thì số lượng sẽ được tăng lên và cả phần tử và số lượng sẽ được tạo thành một danh sách con. Danh sách sẽ được tạo nên chứa các danh sách con hiển thị mọi phần tử và tần suất của nó.

Ví dụ

def occurrences(list_in):
   for i in range(0, len(listA)):
      a = 0
      row = []
      if i not in listB:
         for j in range(0, len(listA)):
            # matching items from both positions
            if listA[i] == listA[j]:
               a = a + 1
            row.append(listA[i])
            row.append(a)
            listB.append(row)
      # Eliminate repetitive list items
      for j in listB:
         if j not in list_uniq:
            list_uniq.append(j)
      return list_uniq
# Caller code
listA = [13,65,78,13,12,13,65]
listB = []
list_uniq = []
print("Number of occurrences of each element in the list:\n")
print(occurrences(listA))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Number of occurrences of each element in the list:
[[13, 3], [65, 2], [78, 1], [12, 1]]

Có bộ đếm

Chúng tôi sử dụng phương pháp truy cập từ mô-đun bộ sưu tập. Nó sẽ cung cấp số lượng của mọi phần tử trong danh sách. Sau đó, chúng tôi khai báo một danh sách trống mới và thêm cặp giá trị khóa cho từng mục dưới dạng phần tử và số lượng của nó vào danh sách mới.

Ví dụ

from collections import Counter
def occurrences(list_in):
   c = Counter(listA)
   new_list = []
   for k, v in c.items():
      new_list.append([k, v])
   return new_list
listA = [13,65,78,13,12,13,65]
print("Number of occurrences of each element in the list:\n")
print(occurrences(listA))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Number of occurrences of each element in the list:
[[13, 3], [65, 2], [78, 1], [12, 1]]