Python liệt kê các đối tượng duy nhất

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để đếm các giá trị duy nhất trong danh sách. Bạn cũng sẽ tìm hiểu cách nhanh nhất để làm điều này là gì. Bạn sẽ học cách thực hiện điều này bằng cách sử dụng một phương pháp thô sơ, ngây thơ, mô-đun

# Using sets to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

num_values = len(set(a_list))
print(num_values)

# Returns 5
3, sử dụng hàm
# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
0, cũng như sử dụng
# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
1. Chúng tôi sẽ kết thúc hướng dẫn bằng cách khám phá phương pháp nào trong số những phương pháp này là nhanh nhất để đảm bảo rằng bạn đang đạt được hiệu suất tốt nhất từ ​​tập lệnh của mình

Câu trả lời nhanh. Sử dụng bộ Python

# Using sets to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

num_values = len(set(a_list))
print(num_values)

# Returns 5

Mục lục

  • Tại sao đếm các giá trị duy nhất?
  • Sử dụng Bộ sưu tập để đếm các giá trị duy nhất trong danh sách
  • Sử dụng Bộ để đếm các giá trị duy nhất trong danh sách Python
  • Sử dụng Numpy để đếm các giá trị duy nhất trong danh sách Python
  • Sử dụng vòng lặp For trong Python để đếm các giá trị duy nhất trong danh sách
  • Phương pháp nào là nhanh nhất để đếm các giá trị duy nhất trong danh sách Python?
  • Sự kết luận

Tại sao đếm các giá trị duy nhất?

Danh sách Python là một cấu trúc dữ liệu tích hợp hữu ích. Một trong những đặc quyền mà họ cung cấp là khả năng có các mục trùng lặp trong đó

Có thể có nhiều lần bạn có thể đếm các giá trị duy nhất có trong danh sách. Ví dụ: nếu bạn nhận được dữ liệu trong danh sách theo dõi số lần đăng nhập vào một trang web, bạn có thể xác định có bao nhiêu người duy nhất thực sự đăng nhập

Sử dụng Bộ sưu tập để đếm các giá trị duy nhất trong danh sách

Mô-đun

# Using sets to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

num_values = len(set(a_list))
print(num_values)

# Returns 5
3 tích hợp có thể được sử dụng để đếm các giá trị duy nhất trong danh sách. Mô-đun có một đối tượng tích hợp có tên là
# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
3 trả về một đối tượng giống như từ điển với các giá trị duy nhất là khóa và số lần xuất hiện của các giá trị

Do đó, chúng ta có thể đếm số lượng khóa để đếm số lượng giá trị duy nhất

Mẹo. Bạn muốn tìm hiểu thêm về mô-đun bộ sưu tập Python và lớp Counter của nó?

Hãy xem cách chúng ta có thể sử dụng đối tượng

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
3 để đếm các giá trị duy nhất trong danh sách Python

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5

Hãy xem những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã chuyển danh sách của mình vào đối tượng Counter để tạo một đối tượng duy nhất
  2. Chúng tôi lấy chìa khóa bằng cách sử dụng. thuộc tính keys()
  3. Cuối cùng, chúng ta có được chiều dài của đối tượng mới đó

Chúng ta có thể làm cho điều này dễ dàng hơn nhiều để viết bằng cách đơn giản là xâu chuỗi quá trình lại với nhau, như hình bên dưới

# Using Counter from collections to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

num_values = len(Counter(a_list).keys())
print(num_values)

# Returns 5

Quá trình này trả về cùng một thứ, nhưng viết nhanh hơn nhiều

Sử dụng Bộ để đếm các giá trị duy nhất trong danh sách Python

Một cấu trúc dữ liệu tích hợp khác từ Python là các bộ. Một trong những điều tách bộ khỏi danh sách là chúng chỉ có thể chứa các giá trị duy nhất

Python được xây dựng với hàm

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
0 cho phép bạn tạo một tập hợp dựa trên thứ gì đó được truyền vào hàm dưới dạng tham số. Khi chúng ta chuyển một danh sách vào hàm, nó sẽ biến danh sách thành một tập hợp, do đó loại bỏ các giá trị trùng lặp

Bây giờ, hãy xem cách chúng ta có thể sử dụng các tập hợp để đếm các giá trị duy nhất trong danh sách

________số 8

Những gì chúng tôi đã làm ở đây là

  1. Biến danh sách của chúng tôi thành một tập hợp bằng cách sử dụng chức năng
    # Use Counter from collections to count unique values in a Python list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    counter_object = Counter(a_list)
    keys = counter_object.keys()
    num_values = len(keys)
    
    print(num_values)
    
    # Returns 5
    0 tích hợp
  2. Trả về số lượng giá trị bằng cách đếm độ dài của tập hợp, sử dụng hàm
    # Use Counter from collections to count unique values in a Python list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    counter_object = Counter(a_list)
    keys = counter_object.keys()
    num_values = len(keys)
    
    print(num_values)
    
    # Returns 5
    7

Chúng ta cũng có thể làm cho quá trình này nhanh hơn một chút bằng cách xâu chuỗi các phương thức lại với nhau, như minh họa bên dưới

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
1

Điều này trả về cùng một giá trị nhưng viết ra nhanh hơn một chút

Muốn tìm hiểu thêm?

Sử dụng Numpy để đếm các giá trị duy nhất trong danh sách Python

Bạn cũng có thể sử dụng numpy để đếm các giá trị duy nhất trong danh sách. Numpy sử dụng cấu trúc dữ liệu được gọi là mảng numpy, hoạt động tương tự như danh sách nhưng cũng có nhiều phương thức hữu ích khác được liên kết với nó, chẳng hạn như khả năng loại bỏ các bản sao

Hãy xem cách chúng ta có thể sử dụng numpy để đếm các giá trị duy nhất trong danh sách

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
2

Hãy xem những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã nhập numpy dưới dạng np và tạo một mảng bằng hàm
    # Use Counter from collections to count unique values in a Python list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    counter_object = Counter(a_list)
    keys = counter_object.keys()
    num_values = len(keys)
    
    print(num_values)
    
    # Returns 5
    8
  2. Chúng tôi đã sử dụng chức năng
    # Use Counter from collections to count unique values in a Python list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    counter_object = Counter(a_list)
    keys = counter_object.keys()
    num_values = len(keys)
    
    print(num_values)
    
    # Returns 5
    9 từ numpy để xóa mọi bản sao
  3. Cuối cùng, chúng tôi đã tính toán độ dài của mảng đó

Chúng ta cũng có thể viết điều này ra theo cách nhanh hơn nhiều, sử dụng chuỗi phương thức. Hãy xem làm thế nào điều này có thể được thực hiện

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
5

Điều này trả về kết quả tương tự như trước

Sử dụng vòng lặp For trong Python để đếm các giá trị duy nhất trong danh sách

Cuối cùng, chúng ta hãy xem một phương pháp ngây thơ hơn để đếm các mục duy nhất trong danh sách. Đối với điều này, chúng tôi sẽ sử dụng vòng lặp Python for để lặp qua danh sách và đếm các mục duy nhất của nó

# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
6

Hãy xem những gì chúng tôi đã làm ở đây

  1. Chúng tôi tạo một danh sách mới có tên là
    # Using Counter from collections to count unique values in a list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    num_values = len(Counter(a_list).keys())
    print(num_values)
    
    # Returns 5
    0 và một số nguyên bằng 0 được gọi là
    # Using Counter from collections to count unique values in a list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    num_values = len(Counter(a_list).keys())
    print(num_values)
    
    # Returns 5
    1
  2. Sau đó, chúng tôi lặp lại danh sách ban đầu của mình và xem liệu mục hiện tại có trong
    # Using Counter from collections to count unique values in a list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    num_values = len(Counter(a_list).keys())
    print(num_values)
    
    # Returns 5
    0
  3. Nếu không, thì chúng tôi nối nó vào danh sách và thêm 1 vào bộ đếm của chúng tôi
    # Using Counter from collections to count unique values in a list
    a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']
    
    from collections import Counter
    
    num_values = len(Counter(a_list).keys())
    print(num_values)
    
    # Returns 5
    1

Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas

Phương pháp nào là nhanh nhất để đếm các giá trị duy nhất trong danh sách Python?

Bây giờ bạn đã học được bốn cách duy nhất để đếm các giá trị duy nhất trong danh sách Python, hãy xem phương pháp nào nhanh nhất

Những gì chúng ta sẽ làm là tạo một trình trang trí Python để định thời gian cho từng phương thức. Chúng ta sẽ tạo một hàm thực thi từng phương thức và trang trí nó để xác định thời gian thực hiện của nó

Đối với danh sách mẫu, chúng tôi sẽ sử dụng một vài đoạn đầu tiên của A Christmas Carol, trong đó mỗi từ là một danh sách và nhân danh sách đó với 10.000 để tạo ra một chút thử thách

# Using sets to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

num_values = len(set(a_list))
print(num_values)

# Returns 5
1

Từ đó, chúng ta có thể thấy rằng mặc dù phương thức Counter và phương thức Numpy tương đối nhanh, nhưng phương thức set là nhanh nhất trong nhóm. Điều này có thể là do nó không yêu cầu nhập phương thức khác

Sự kết luận

Trong bài đăng này, bạn đã học cách đếm các giá trị duy nhất trong danh sách Python. Bạn đã học cách thực hiện việc này bằng cách sử dụng các bộ dựng sẵn, sử dụng mô-đun

# Using sets to count unique values in a list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

num_values = len(set(a_list))
print(num_values)

# Returns 5
3, sử dụng
# Use Counter from collections to count unique values in a Python list
a_list = ['apple', 'orage', 'apple', 'banana', 'apple', 'apple', 'orange', 'grape', 'grape', 'apple']

from collections import Counter

counter_object = Counter(a_list)
keys = counter_object.keys()
num_values = len(keys)

print(num_values)

# Returns 5
1 và cuối cùng là sử dụng vòng lặp for. Sau đó, bạn đã biết phương pháp nào trong số những phương pháp này là phương pháp nhanh nhất để thực thi, để đảm bảo bạn không làm chậm tập lệnh của mình một cách không cần thiết

Để tìm hiểu thêm về đối tượng Counter trong mô-đun bộ sưu tập, bạn có thể xem tài liệu chính thức tại đây

Đối tượng danh sách duy nhất trong Python là gì?

Trong ngôn ngữ lập trình Python, danh sách được định nghĩa là một tập hợp các phần tử theo thứ tự nào đó, điều này cũng cho phép các số trùng lặp lấy các số hoặc phần tử duy nhất từ ​​danh sách đã cho. Chúng tôi giới thiệu danh sách độc đáo. Danh sách duy nhất của Python là danh sách chứa các phần tử duy nhất bất kể thứ tự .

Làm cách nào tôi có thể tìm thấy giá trị riêng biệt của danh sách các đối tượng?

Nhưng bạn phải làm một số công việc quanh co. .
Tạo một lớp bên trong với các biến bắt buộc
Tạo Danh sách lớp bên trong được tạo ở trên và đừng quên đóng gói nó
Nhận giá trị được lưu trữ vào danh sách dưới dạng đối tượng lớp bên trong
tạo MÔ HÌNH DỮ LIỆU và đẩy danh sách vào mô hình dữ liệu
lấy dữ liệu bị vênh vào một danh sách khác

Hàm duy nhất () trả về trong Python là gì?

Hàm unique() là một trong những hàm hữu ích của thư viện này để tìm ra các giá trị duy nhất của một mảng và trả về các giá trị duy nhất đã sắp xếp . Hàm này cũng có thể trả về một bộ giá trị mảng, mảng chỉ số kết hợp và số lần mỗi giá trị duy nhất xuất hiện trong mảng chính.