Đếm số lần phần tử xuất hiện trong danh sách python

Hướng dẫn này cho bạn thấy mọi thứ bạn cần biết để giúp bạn nắm vững phương pháp

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
6 thiết yếu của kiểu dữ liệu vùng chứa cơ bản nhất trong ngôn ngữ lập trình Python

Python List Count[] - Hướng dẫn minh họa đơn giản


Xem video này trên YouTube

Định nghĩa và cách sử dụng

Phương thức

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
7 đếm số lần xuất hiện của phần tử
>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
8 trong
>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
9

Đây là một ví dụ ngắn

>>> lst = [1, 2, 42, 2, 1, 42, 42]
>>> lst.count[42]
3
>>> lst.count[2]
2

Trong dòng đầu tiên của ví dụ, bạn tạo danh sách

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
0. Sau đó, bạn đếm số lần các giá trị nguyên 42 và 2 xuất hiện trong danh sách

Câu đố mật mã — Hãy tự mình thử

Bây giờ bạn đã biết những điều cơ bản. Hãy nâng cao hiểu biết của bạn bằng câu đố mã ngắn—bạn có giải được không?

# Create list of strings
customers = ["Alice", "Bob", "Ann", "Alice", "Charles"]

# Count each customer in list and store in dictionary
d = {k:customers.count[k] for k in customers}

# Print everything
print[d]

# What's the output of this code puzzle?

Bạn cũng có thể giải câu đố này và theo dõi kỹ năng Python của mình trên ứng dụng Finxter tương tác của chúng tôi

cú pháp. Bạn có thể gọi phương thức này trên từng đối tượng danh sách trong Python [Python phiên bản 2. x và 3. x]. Đây là cú pháp

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
1

Tranh luận

Đối sốMô tả_______5_______2Đếm số lần xuất hiện của
>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
2 trong
>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
9. Một giá trị xuất hiện trong danh sách nếu toán tử
>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
5 trả về
>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
6

Giá trị trả về. Phương thức

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
1 trả về một giá trị số nguyên được đặt thành số lần đối số
>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
2 xuất hiện trong danh sách. Nếu giá trị không xuất hiện trong danh sách, giá trị trả về là 0

bài viết liên quan

  • Python Regex Superpower – Hướng dẫn cơ bản
  • Master Python Lists [Sách điện tử HTML miễn phí + Video]

Đây là bảng cheat PDF miễn phí của bạn hiển thị cho bạn tất cả các phương pháp liệt kê Python trên một trang đơn giản. Nhấp vào hình ảnh để tải xuống tệp PDF có độ phân giải cao, in và dán lên tường văn phòng của bạn

Tải xuống PDF tức thì [MIỄN PHÍ 100%]

Giá trị đếm danh sách Python

Bạn đã thấy cách đếm các giá trị trong một danh sách nhất định. Đây là ví dụ tối thiểu để đếm tần suất giá trị x=42 xuất hiện trong danh sách các phần tử

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3

Giá trị 42 xuất hiện ba lần trong danh sách

Điều quan trọng là bạn hiểu cách thức hoạt động của phương thức đếm. Giả sử, bạn đang tìm kiếm

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
2 trong một danh sách nhất định. Nếu phần tử danh sách
>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
0 bộ đếm được tăng thêm một. Phương thức không đếm số lần một phần tử được tham chiếu trong bộ nhớ

Đây là một ví dụ

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2

Danh sách cấp cao nhất đề cập đến hai đối tượng danh sách độc lập

>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
1 trong bộ nhớ. Tuy nhiên, nếu bạn đếm số lần xuất hiện của danh sách thứ ba
>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
1, phương pháp xác định chính xác rằng nó xuất hiện hai lần. Đó là bởi vì hai phần tử danh sách bằng với danh sách
>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
1

Lưu ý rằng các giá trị

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
8 và
>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
5 được coi là bằng nhau nếu
>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True
6. Bạn có thể thấy điều này cho danh sách số nguyên trong ví dụ sau

>>> lst_1 = [1, 1]
>>> lst_2 = [1, 1]
>>> lst_1 == lst_2
True

Tóm lại, phương pháp

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
1 đếm số lần một phần tử danh sách bằng với giá trị [sử dụng phép so sánh
>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
5]. Đây là một triển khai tham khảo

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0

[Lưu ý rằng đây không phải là triển khai thực sự của cPython. Nó chỉ là một triển khai tương đương về mặt ngữ nghĩa của phương pháp

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
1 cho mục đích giáo dục. ]

Những bài viết liên quan

  • Các phương thức danh sách Python – Tổng quan đơn giản
  • Làm thế nào để bắt đầu học Python?

Danh sách Python Đếm độ phức tạp của thời gian chạy

Độ phức tạp về thời gian của phương pháp

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
0 là O[n] đối với một danh sách có n phần tử. Việc triển khai Python tiêu chuẩn cPython “chạm” vào tất cả các phần tử trong danh sách ban đầu để kiểm tra xem chúng có bằng giá trị không

Một lần nữa, hãy xem triển khai tham chiếu nơi bạn có thể thấy các hoạt động so sánh này

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
1 trong mã

def count[lst, value]:
    count = 0
    for element in lst:
        count += element == value
    return count

Do đó, độ phức tạp thời gian là tuyến tính theo số phần tử danh sách

Bạn có thể xem biểu đồ về độ phức tạp về thời gian của phương pháp

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
6 để tăng kích thước danh sách tại đây

Hình vẽ cho thấy thời gian đã trôi qua của việc đếm phần tử giả -99 trong danh sách có số lượng phần tử tăng dần tăng tuyến tính theo số lượng phần tử

Nếu bạn quan tâm đến mã mà tôi đã sử dụng để tạo biểu đồ này bằng Matplotlib, thì đây chính là mã

import matplotlib.pyplot as plt
import time

y = []
for i in [100000 * j for j in range[10,100]]:
    lst = list[range[i]]
    t0 = time.time[]
    x = lst.count[-99]
    t1 = time.time[]
    y.append[t1-t0]


plt.plot[y]
plt.xlabel["List elements [10**5]"]
plt.ylabel["Time [sec]"]
plt.show[]

Danh sách Python trùng lặp

Làm thế nào bạn có thể đếm số lượng trùng lặp trong một danh sách nhất định?

Vấn đề. Hãy xem xét một phần tử trùng lặp nếu nó xuất hiện ít nhất hai lần trong danh sách. Ví dụ: danh sách

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
3 có hai bản sao
def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
4 và
def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
5

Giải pháp. Bạn tạo một tập hợp trống trùng lặp. Sau đó, bạn lặp lại danh sách ban đầu và thêm từng phần tử vào tập hợp có giá trị đếm ít nhất là 2

Đây là mã

def find_dups[lst]:
    dups = set[]
    for el in lst:
        if lst.count[el]>1:
            dups.add[el]
    return dups

print[find_dups[[1, 1, 1, 2, 2, 3]]]
# {1, 2}

print[find_dups[["Alice", "Bob", "Alice"]]]
# {'Alice'}

print[find_dups[[1, 2, 3]]]
# set[]

Lưu ý rằng thuật toán này có độ phức tạp thời gian bậc hai vì đối với mỗi phần tử trong danh sách, bạn cần đếm số lần nó xuất hiện trong danh sách—mỗi thao tác đếm đó có độ phức tạp thời gian tuyến tính

bài viết liên quan

  • Giới thiệu về Set trong Python [Ví dụ về Harry Potter] 😉

Danh sách Python Đếm các giá trị và chuỗi duy nhất

Làm cách nào bạn có thể đếm số lượng giá trị [hoặc chuỗi] duy nhất trong một danh sách nhất định?

Vấn đề. Một giá trị được coi là duy nhất nếu nó chỉ xuất hiện một lần trong danh sách

Giải pháp. Bạn đếm từng

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
6 trong danh sách và chỉ lấy những thứ có
def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
7

Đây là mã

def find_uniques[lst]:
    uniques = set[]
    for el in lst:
        if lst.count[el] == 1:
            uniques.add[el]
    return uniques


print[find_uniques[[1, 1, 2, 3, 3]]]
# {2}

print[find_uniques[["Alice", "Bob", "Alice"]]]
# {'Bob'}

Thuật toán này có độ phức tạp thời gian bậc hai vì đối với mỗi phần tử trong danh sách, bạn cần đếm số lần nó xuất hiện trong danh sách—mỗi thao tác đếm đó có độ phức tạp thời gian tuyến tính

Danh sách Python Đếm tất cả các phần tử [Count to Dict]

Làm cách nào bạn có thể đếm tất cả các phần tử trong danh sách và lưu trữ kết quả trong từ điển?

Vấn đề. Cho trước là một danh sách. Bạn muốn đếm từng phần tử trong danh sách. Sau đó, bạn muốn lưu trữ kết quả trong từ điển ánh xạ các phần tử theo tần suất xuất hiện [số lượng] của chúng. Ví dụ: danh sách

def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
8 sẽ dẫn đến từ điển
def count[lst, value]:
    ''' Returns the number of times
    a list element is equal to value'''

    count = 0
    for element in lst:
        count += element == value

    return count


lst = [1, 1, 1, 1, 2]

print[lst.count[1]]
# 4

print[lst.count[2]]
# 1

print[lst.count[3]]
# 0
9

Giải pháp. Bạn giải quyết vấn đề này bằng cách hiểu từ điển. Khóa là phần tử danh sách và giá trị là tần suất xuất hiện của phần tử này trong danh sách. Bạn sử dụng phương pháp

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
6 để làm điều này

Đây là mã

# Create list of strings
customers = ["Alice", "Bob", "Ann", "Alice", "Charles"]

# Count each customer in list and store in dictionary
d = {k:customers.count[k] for k in customers}

# Print everything
print[d]

# What's the output of this code puzzle?
0

Thuật toán này có độ phức tạp thời gian bậc hai vì đối với mỗi phần tử trong danh sách, bạn cần đếm số lần nó xuất hiện trong danh sách—mỗi thao tác đếm đó có độ phức tạp thời gian tuyến tính

bài viết liên quan

  • Hướng dẫn cơ bản về từ điển trong Python

Đếm danh sách Python có điều kiện

Làm cách nào bạn có thể đếm các phần tử trong một điều kiện nhất định trong Python?

Giả sử, bạn có một điều kiện cho từng phần tử

>>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
3
8. Hãy biến nó thành một hàm có tên
def count[lst, value]:
    count = 0
    for element in lst:
        count += element == value
    return count
2. Bạn có thể xác định bất kỳ điều kiện nào bạn muốn—chỉ cần đặt nó vào hàm của bạn. Ví dụ: điều kiện này trả về True cho tất cả các phần tử lớn hơn số nguyên 10

# Create list of strings
customers = ["Alice", "Bob", "Ann", "Alice", "Charles"]

# Count each customer in list and store in dictionary
d = {k:customers.count[k] for k in customers}

# Print everything
print[d]

# What's the output of this code puzzle?
1

Nhưng bạn cũng có thể xác định các điều kiện phức tạp hơn như kiểm tra xem chúng có phải là số nguyên tố không

Danh sách Python Đếm Nếu

Làm thế nào bạn có thể đếm các phần tử của danh sách NẾU điều kiện được đáp ứng?

Câu trả lời là sử dụng biểu thức trình tạo đơn giản

def count[lst, value]:
    count = 0
    for element in lst:
        count += element == value
    return count
3

# Create list of strings
customers = ["Alice", "Bob", "Ann", "Alice", "Charles"]

# Count each customer in list and store in dictionary
d = {k:customers.count[k] for k in customers}

# Print everything
print[d]

# What's the output of this code puzzle?
2

Kết quả cho biết có 2 phần tử lớn hơn 10. Bạn đã sử dụng một biểu thức trình tạo trả về một trình vòng lặp của Booleans. Lưu ý rằng Boolean

>>> lst = [[1,1], [1,1], [1,1], 42, 1]
>>> lst.count[[1,1]]
2
6 được biểu thị bằng giá trị nguyên 1 và Boolean
def count[lst, value]:
    count = 0
    for element in lst:
        count += element == value
    return count
5 được biểu thị bằng giá trị nguyên 0. Đó là lý do tại sao bạn có thể chỉ cần tính tổng trên tất cả các Boolean để có được số phần tử thỏa mãn điều kiện

Số lượng danh sách Python lớn hơn/nhỏ hơn

Nếu bạn muốn xác định số lượng phần tử lớn hơn hoặc nhỏ hơn một giá trị cụ thể, chỉ cần sửa đổi điều kiện trong ví dụ này

# Create list of strings
customers = ["Alice", "Bob", "Ann", "Alice", "Charles"]

# Count each customer in list and store in dictionary
d = {k:customers.count[k] for k in customers}

# Print everything
print[d]

# What's the output of this code puzzle?
2

Ví dụ: để tìm số phần tử nhỏ hơn 5, hãy sử dụng điều kiện x>> lst = [[1,1], [1,1], [1,1], 42, 1] >>> lst.count[[1,1]] 21 nhận chính xác một đối số. giá trị bạn muốn đếm. Nếu bạn xác định nhiều hơn hoặc ít hơn các đối số, sẽ có lỗi

  • Phương pháp
    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    1 chỉ có thế. một phương thức của một đối tượng danh sách. Bạn cần gọi nó trên một đối tượng danh sách. Nếu bạn cố gọi nó trên một đối tượng khác, nó có thể sẽ thất bại. Nếu bạn cố gắng sử dụng nó như thế [không có tiền tố danh sách, tôi. e. ,
    def count[lst, value]:
        ''' Returns the number of times
        a list element is equal to value'''
    
        count = 0
        for element in lst:
            count += element == value
    
        return count
    
    
    lst = [1, 1, 1, 1, 2]
    
    print[lst.count[1]]
    # 4
    
    print[lst.count[2]]
    # 1
    
    print[lst.count[3]]
    # 0
    
    0], nó cũng sẽ thất bại
  • >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    1 sẽ trả về 0 nếu bạn đặt bất kỳ đối tượng nào làm đối số không ước tính thành
    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    6 khi so sánh với các phần tử danh sách bằng cách sử dụng toán tử so sánh
    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    5. Vì vậy, hãy đảm bảo rằng đối tượng bạn muốn đếm thực sự có giá trị là
    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    6 nếu bạn so sánh đối tượng đó với một số thành phần danh sách. Bạn có thể cho rằng điều này nhưng nó có thể dễ dàng thất bại khi làm như vậy
  • Số lượng tham chiếu danh sách Python

    Trình thu gom rác Python theo dõi số lần mỗi đối tượng trong bộ nhớ được tham chiếu. Bạn gọi đây là "đếm tham chiếu". Mã của bạn không thể truy cập tất cả các đối tượng có số tham chiếu bằng 0 và do đó, có thể được bộ thu gom rác loại bỏ một cách an toàn

    Nó không liên quan đến danh sách Python với một ngoại lệ. mỗi phần tử danh sách tăng số lượng tham chiếu lên một vì danh sách thực sự là một mảng các con trỏ tới các đối tượng danh sách trong bộ nhớ trong triển khai cPython

    Bộ đếm danh sách Python

    Làm cách nào bạn có thể đếm số lần một bộ đã cho xuất hiện trong danh sách?

    Chỉ cần sử dụng bộ dữ liệu làm giá trị đối số đầu vào cho phương thức

    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    1. Đây là một ví dụ

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    0

    Làm thế nào bạn có thể đếm số lượng bộ dữ liệu trong một danh sách nhất định?

    Sử dụng phương pháp

    def find_dups[lst]:
        dups = set[]
        for el in lst:
            if lst.count[el]>1:
                dups.add[el]
        return dups
    
    print[find_dups[[1, 1, 1, 2, 2, 3]]]
    # {1, 2}
    
    print[find_dups[["Alice", "Bob", "Alice"]]]
    # {'Alice'}
    
    print[find_dups[[1, 2, 3]]]
    # set[]
    5 để kiểm tra loại của một biến đã cho
    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    8. Sau đó so sánh kết quả với kiểu dữ liệu mong muốn của bạn [e. g.
    def find_dups[lst]:
        dups = set[]
        for el in lst:
            if lst.count[el]>1:
                dups.add[el]
        return dups
    
    print[find_dups[[1, 1, 1, 2, 2, 3]]]
    # {1, 2}
    
    print[find_dups[["Alice", "Bob", "Alice"]]]
    # {'Alice'}
    
    print[find_dups[[1, 2, 3]]]
    # set[]
    7]

    Đây là một ví dụ

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    1

    Những bài viết liên quan

    • Bậc thầy điều hành ternary
    • Hiểu danh sách chính

    Danh sách Python Đếm và Sắp xếp

    Được cho. danh sách

    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    0

    Vấn đề. Bạn muốn đếm số lần xuất hiện của tất cả các giá trị trong danh sách và sắp xếp chúng theo tần suất của chúng

    Thí dụ. đối với các phần tử danh sách [1, 1, 1, 1, 0, 0, 3, 1, 1, 3, 3, 3] bạn muốn lấy tần số của chúng theo cách được sắp xếp

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    2

    Giải pháp. Sử dụng phương pháp

    def find_dups[lst]:
        dups = set[]
        for el in lst:
            if lst.count[el]>1:
                dups.add[el]
        return dups
    
    print[find_dups[[1, 1, 1, 2, 2, 3]]]
    # {1, 2}
    
    print[find_dups[["Alice", "Bob", "Alice"]]]
    # {'Alice'}
    
    print[find_dups[[1, 2, 3]]]
    # set[]
    9 thực hiện chính xác điều đó. Bạn có thể tìm tài liệu

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    3

    Tạo đầu ra

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    4

    Danh sách Python đếm chậm

    Bạn có muốn cải thiện hiệu suất của phương pháp

    >>> lst = [[1,1], [1,1], [1,1], 42, 1]
    >>> lst.count[[1,1]]
    2
    1 không?

    Không có nhiều bạn có thể làm về nó. Tất nhiên, nếu bạn cần đếm cùng một phần tử nhiều lần, bạn có thể sử dụng từ điển bộ đệm để lưu kết quả của nó. Nhưng điều này chỉ hoạt động nếu danh sách không thay đổi

    Bạn cũng có thể sắp xếp danh sách một lần để lấy O[n log n] cho n phần tử danh sách. Sau đó, bạn có thể gọi triển khai phương thức đếm dựa trên tìm kiếm nhị phân với độ phức tạp thời gian chạy O[log n]. Nhưng nếu bạn chỉ cần đếm một yếu tố duy nhất, điều này không hiệu quả

    Thật thú vị, việc đếm tất cả các phần tử trong danh sách cũng có độ phức tạp thời gian chạy O[n]. Tại sao? . Nếu nó tồn tại, bạn chỉ cần tăng bộ đếm lên một

    Trong điểm chuẩn tuyệt vời này, bạn có thể tìm thấy hiệu suất của các phương pháp đếm khác nhau. Lớp học dường như có thành tích tốt nhất

    Đếm danh sách Python vs Len

    Có gì khác biệt?

    • Phương thức
      >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
      3
      7 đếm số lần xuất hiện của phần tử
      >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
      3
      8 trong
      >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
      3
      9
    • Phương thức
      def find_uniques[lst]:
          uniques = set[]
          for el in lst:
              if lst.count[el] == 1:
                  uniques.add[el]
          return uniques
      
      
      print[find_uniques[[1, 1, 2, 3, 3]]]
      # {2}
      
      print[find_uniques[["Alice", "Bob", "Alice"]]]
      # {'Bob'}
      4 trả về tổng số phần tử trong danh sách

    Đây là một ví dụ tối thiểu

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    5

    Số lượng danh sách Python[] Chủ đề an toàn

    Bạn có nhiều chủ đề truy cập vào danh sách của mình cùng một lúc không?

    Nói cách khác. bạn có thể gọi thao tác

    def find_uniques[lst]:
        uniques = set[]
        for el in lst:
            if lst.count[el] == 1:
                uniques.add[el]
        return uniques
    
    
    print[find_uniques[[1, 1, 2, 3, 3]]]
    # {2}
    
    print[find_uniques[["Alice", "Bob", "Alice"]]]
    # {'Bob'}
    6[] trong hai luồng trên cùng một danh sách cùng một lúc không?

    Câu trả lời là có [nếu bạn sử dụng triển khai cPython]. Lý do là khóa trình thông dịch toàn cầu của Python đảm bảo rằng một chuỗi hiện đang làm việc trên mã của nó trước tiên sẽ hoàn thành hoạt động Python cơ bản hiện tại của nó như được xác định bởi quá trình triển khai cPython. Chỉ khi nó kết thúc với thao tác này thì luồng tiếp theo mới có thể truy cập tài nguyên tính toán. Điều này được đảm bảo với sơ đồ khóa tinh vi bằng cách triển khai cPython

    Điều duy nhất bạn cần biết là mỗi thao tác cơ bản trong triển khai cPython là nguyên tử. Nó được thực thi toàn bộ và ngay lập tức trước khi bất kỳ luồng nào khác có cơ hội chạy trên cùng một công cụ ảo. Do đó, không có điều kiện cuộc đua. Một ví dụ về điều kiện chủng tộc như vậy sẽ như sau. luồng đầu tiên đọc một giá trị từ danh sách, luồng thứ hai ghi đè giá trị và luồng đầu tiên ghi đè lại giá trị làm mất hiệu lực hoạt động của luồng thứ hai

    Tất cả các hoạt động của cPython đều an toàn theo luồng. Nhưng nếu bạn kết hợp các thao tác đó thành các hàm cấp cao hơn, thì các thao tác đó thường không an toàn cho luồng vì chúng bao gồm nhiều thao tác [có thể xen kẽ]

    Đi đâu từ đây?

    Phương thức

    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    7 đếm số lần phần tử
    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    8 xuất hiện trong
    >>> [42, 42, 1, 2, 3, 42, 1, 3].count[42]
    3
    9

    Bạn đã tìm hiểu thông tin chi tiết về phương pháp danh sách Python quan trọng này

    Nếu bạn tiếp tục vật lộn với những lệnh Python cơ bản đó và bạn cảm thấy bế tắc trong quá trình học tập của mình, thì tôi có thứ này cho bạn. Python One-Liners [Liên kết Amazon]

    Trong cuốn sách này, tôi sẽ cung cấp cho bạn tổng quan kỹ lưỡng về các chủ đề khoa học máy tính quan trọng như học máy, biểu thức chính quy, khoa học dữ liệu, NumPy và kiến ​​thức cơ bản về Python—tất cả trong một dòng mã Python

    Lấy sách từ Amazon

    MÔ TẢ SÁCH CHÍNH THỨC. Python One-Liners sẽ chỉ cho người đọc cách thực hiện các tác vụ hữu ích với một dòng mã Python. Sau phần giới thiệu ngắn gọn về Python, cuốn sách bao gồm các chủ đề nâng cao cần thiết như cắt, hiểu danh sách, phát sóng, hàm lambda, thuật toán, biểu thức chính quy, mạng thần kinh, hồi quy logistic, v.v. Mỗi phần trong số 50 phần của cuốn sách giới thiệu một vấn đề cần giải quyết, hướng dẫn người đọc các kỹ năng cần thiết để giải quyết vấn đề đó, sau đó cung cấp một giải pháp Python ngắn gọn với lời giải thích chi tiết

    Chris

    Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

    Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

    Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

    Làm cách nào để đếm số lần một mục xuất hiện trong danh sách Python?

    Phương thức count[] trả về số lần phần tử được chỉ định xuất hiện trong danh sách.

    Làm cách nào để đếm số lần một chuỗi xuất hiện trong danh sách Python?

    Phương thức count[] của Python có thể được sử dụng để đếm số lần một mục cụ thể xuất hiện trong danh sách hoặc chuỗi. Khi được sử dụng với một chuỗi, phương thức count[] đếm số lần một chuỗi con xuất hiện trong một chuỗi lớn hơn.

    Chủ Đề