Hướng dẫn how to get non repeated values in python - cách lấy các giá trị không lặp lại trong python

Sử dụng Counterdefaultdict từ collections:

from collections import defaultdict
from collections import Counter

A = [1 ,2 ,3 ,2 ,5, 1]
# create a mapping from each item to it's count
counter = Counter[A]

# now reverse the mapping by using a defaultdict for convenience
countmap = defaultdict[list]

for k, v in counter.iteritems[]:
    countmap[v].append[k]

# take all values that occurred once
print countmap[1] # [3, 5]

Nếu bạn quan tâm đến những ánh xạ, bạn có thể in chúng:

Counter[{1: 2, 2: 2, 3: 1, 5: 1}]
0:

Counter[{1: 2, 2: 2, 3: 1, 5: 1}]

Counter[{1: 2, 2: 2, 3: 1, 5: 1}]
1:

defaultdict[, {1: [3, 5], 2: [1, 2]}]

Để tạo thủ công bộ đếm, bạn có thể sử dụng chức năng này:

def make_counter[lst]:
    counter = dict[]
    for item in lst:
        if item in counter:
            counter[item] += 1
        else:
            counter[item] = 1
    return counter

make_counter[A]

Output:

{1: 2, 2: 2, 3: 1, 5: 1}

Các yếu tố không lặp lại trong một mảng trong Python

Ở đây, trong trang này, chúng tôi sẽ thảo luận về chương trình để in các yếu tố không lặp lại trong ngôn ngữ lập trình Python. Chúng tôi được đưa ra với một mảng số nguyên và cần phải in các yếu tố chỉ xảy ra một lần.

Thí dụ

Đầu vào: ARR [8] = [10, 20, 70, 90, 80, 20, 10, 20] Đầu ra: 70 90 80 Giải thích: 70, 90 và 80 xảy ra 1 lần trong mảng đã cho, 10 xảy ra 2 lần và 20 xảy ra 3 lần.: arr[8] = [10, 20, 70, 90, 80, 20, 10, 20]
Output : 70 90 80
Explanation : 70, 90 and 80 are occur 1 time in the given array, 10 occurs 2 times and 20 occurs 3 times.

Phương pháp đã thảo luận:

  • Phương pháp 1: Sử dụng hai vòng cho các vòng
  • Phương pháp 2: Sử dụng từ điển

Phương pháp 1:

Trong phương pháp này, chúng tôi sẽ đếm tần số của từng phần tử bằng hai phần tử cho các vòng và in các yếu tố có tần số bằng với một.

  • Để kiểm tra trạng thái của các yếu tố đã truy cập, hãy tạo một mảng kích thước n.
  • Chạy một vòng từ chỉ mục 0 đến n và kiểm tra xem [đã truy cập [i] == 1] sau đó bỏ qua phần tử đó.
  • Mặt khác, tạo một số lượng biến = 1 để giữ số lượng tần số.
  • Chạy vòng lặp từ Index I+1 đến N
  • Kiểm tra nếu [mảng [i] == mảng [j]], sau đó tăng số lượng lên 1 và đặt truy cập [j] = 1.
  • Sau khi hoàn thành lần lặp của bên trong cho vòng lặp và kiểm tra xem Count == 1 thì in các phần tử đó.

Sự phức tạp về thời gian và không gian:

  • Độ phức tạp về thời gian: O [N2]O[n2]
  • Độ phức tạp không gian: O [n]O[n]

Phương pháp 1: Mã trong Python

Chạy

# Python 3 program to count unique elements
def count[arr, n]:

   # Mark all array elements as not visited
   visited = [False for i in range[n]]

   # Traverse through array elements
   # and count frequencies
   for i in range[n]:

     # Skip this element if already
     # processed
     if [visited[i] == True]:
        continue

     # Count frequency
     count = 1
     for j in range[i + 1, n, 1]:
        if [arr[i] == arr[j]]:
          visited[j] = True
          count += 1
     if count == 1 :
        print[arr[i]];
   

# Driver Code
arr = [10, 30, 40, 20, 10, 20, 50, 10]
n = len[arr]
count[arr, n]

Phương pháp 2:

Trong phương pháp này, chúng tôi sẽ đếm sử dụng từ điển để đếm tần số của từng phần tử và sau đó kiểm tra xem tần số đó có bằng 1 hoặc không.

  • Tuyên bố một Dictionary Dict [] nói, mp = dict [].
  • Bắt đầu lặp lại trên toàn bộ mảng
  • Nếu phần tử có mặt trong bản đồ, thì hãy tăng giá trị tần số lên 1.
  • Nếu không, chèn phần tử đó vào bản đồ.
  • Sau khi hoàn thành Lặp lại trên mảng, bắt đầu vượt qua bản đồ và kiểm tra xem giá trị có bằng 1 không, sau đó in giá trị khóa.

Sự phức tạp về thời gian và không gian:

  • Độ phức tạp về thời gian: O [n]O[n]
  • Độ phức tạp không gian: O [n]O[n]

Phương pháp 1: Mã trong Python

Chạy

def count[arr, n]:

    mp = dict[]
  
    # Traverse through array elements
    # and count frequencies

    for i in range[n]:
        if arr[i] in mp.keys[]:
            mp[arr[i]] += 1
        else:
            mp[arr[i]] = 1

           
    # Traverse through map and print
    # frequencies

    for x in mp:
        if mp[x]==1 :
          print[x];
   
# Driver Code 
arr = [10, 30, 40, 20, 10, 20, 50, 10] 
n = len[arr] 
count[arr, n]

Phương pháp 2:

Trong phương pháp này, chúng tôi sẽ đếm sử dụng từ điển để đếm tần số của từng phần tử và sau đó kiểm tra xem tần số đó có bằng 1 hoặc không.

Tuyên bố một Dictionary Dict [] nói, mp = dict [].

Làm cách nào để nhận được các giá trị độc đáo trong Python?

Tùy chọn 1 - Sử dụng một bộ để có được các yếu tố độc đáo. Sử dụng một bộ một cách để đi về nó. Một bộ là hữu ích vì nó chứa các yếu tố duy nhất. Bạn có thể sử dụng một bộ để có được các yếu tố duy nhất.

Làm thế nào để bạn tìm thấy các phần tử không trùng lặp trong một mảng?

Tìm phần tử không lặp lại trong một mảng có thể được thực hiện theo 2 cách khác nhau. Phương pháp 1: Sử dụng hai vòng, một cho phần tử hiện tại và phần còn lại để kiểm tra xem phần tử đã có trong mảng hay không. Phương pháp 2: Đi qua mảng và chèn các phần tử mảng và số lần xuất hiện của chúng trong bảng băm.Use two loops, one for the current element and the other to check if the element is already present in the array or not. Method 2: Traverse the array and insert the array elements and their number of occurences in the hash table.

Làm thế nào để bạn kiểm tra xem một phần tử được lặp lại trong Python?

Nhiều cách để kiểm tra xem các bản sao có tồn tại trong danh sách Python không..
Độ dài của danh sách & chiều dài của bộ khác nhau ..
Kiểm tra từng phần tử trong tập.Nếu có, DUP, nếu không, hãy nối thêm ..
Kiểm tra danh sách.Count [] cho mỗi yếu tố ..

Là duy nhất trong Python?

Một danh sách trong Python có thể chứa các yếu tố tất cả trong số đó có thể hoặc không phải là duy nhất.Nhưng đối với một kịch bản khi chúng ta cần các yếu tố độc đáo như đánh dấu sự tham dự cho các số cuộn khác nhau của một lớp.

Bài Viết Liên Quan

Chủ Đề