Hướng dẫn how do you count how many times a value appears in a list in python - làm thế nào để bạn đếm số lần một giá trị xuất hiện trong danh sách trong python

Dưới đây là ba giải pháp:

Nhanh nhất là sử dụng một vòng lặp và lưu trữ nó trong một dict.

Show
import time
from collections import Counter


def countElement(a):
    g = {}
    for i in a:
        if i in g: 
            g[i] +=1
        else: 
            g[i] =1
    return g


z = [1,1,1,1,2,2,2,2,3,3,4,5,5,234,23,3,12,3,123,12,31,23,13,2,4,23,42,42,34,234,23,42,34,23,423,42,34,23,423,4,234,23,42,34,23,4,23,423,4,23,4]


#Solution 1 - Faster
st = time.monotonic()
for i in range(1000000):
    b = countElement(z)
et = time.monotonic()
print(b)
print('Simple for loop and storing it in dict - Duration: {}'.format(et - st))

#Solution 2 - Fast
st = time.monotonic()
for i in range(1000000):
    a = Counter(z)
et = time.monotonic()
print (a)
print('Using collections.Counter - Duration: {}'.format(et - st))

#Solution 3 - Slow
st = time.monotonic()
for i in range(1000000):
    g = dict([(i, z.count(i)) for i in set(z)])
et = time.monotonic()
print(g)
print('Using list comprehension - Duration: {}'.format(et - st))

Kết quả

#Solution 1 - Faster
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
#Solution 2 - Fast
Counter({23: 10, 4: 6, 2: 5, 42: 5, 1: 4, 3: 4, 34: 4, 234: 3, 423: 3, 5: 2, 12: 2, 123: 1, 31: 1, 13: 1})
Using collections.Counter - Duration: 15.889999999999418
#Solution 3 - Slow
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 34: 4, 423: 3, 234: 3, 42: 5, 12: 2, 13: 1, 23: 10, 123: 1, 31: 1}
Using list comprehension - Duration: 33.0

Thể hiện lớp {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3} Simple for loop and storing it in dict - Duration: 12.032000000000153 4 có thể được sử dụng, tốt, đếm các thể hiện của các đối tượng khác. Bằng cách chuyển một danh sách vào hàm tạo của nó, chúng tôi khởi tạo một {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3} Simple for loop and storing it in dict - Duration: 12.032000000000153 4 trả về một từ điển của tất cả các yếu tố và sự xuất hiện của chúng trong một danh sách.

Từ đó, để có được một từ xuất hiện, bạn chỉ có thể sử dụng từ làm khóa cho từ điển:histograms.

Giả sử chúng tôi có một danh sách

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
2 - chúng tôi có hai lần xuất hiện trên "B" và một trong "A". Hướng dẫn này sẽ chỉ cho bạn ba cách khác nhau để đếm số lần xuất hiện từ trong danh sách Python:

  • Sử dụng gấu trúc và numpy
  • Sử dụng hàm
    {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
    Simple for loop and storing it in dict - Duration: 12.032000000000153
    
    3
  • Sử dụng mô -đun bộ sưu tập
    {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
    Simple for loop and storing it in dict - Duration: 12.032000000000153
    
    4
  • Sử dụng một vòng lặp và một biến bộ đếm

Trong thực tế, bạn sẽ sử dụng gấu trúc/nunpy, hàm

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 hoặc
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 vì chúng khá thuận tiện để sử dụng.

Sử dụng gấu trúc và numpy

Cách ngắn nhất và dễ nhất để có được số lượng giá trị ở định dạng dễ điều khiển (

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7) là thông qua Numpy và Pandas. Chúng ta có thể gói danh sách thành một mảng numpy, và sau đó gọi phương thức
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
8 của thể hiện
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
9 (cũng có sẵn cho tất cả các trường hợp
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7):

import numpy as np
import pandas as pd

words = ['hello', 'goodbye', 'howdy', 'hello', 'hello', 'hi', 'bye']

pd.value_counts(np.array(words))

Điều này dẫn đến một

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7 có chứa:

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64

Bạn có thể truy cập trường

#Solution 2 - Fast
2 của nó để tự mình có được số lượng hoặc
#Solution 2 - Fast
3 để tự nhận các từ:

df = pd.value_counts(np.array(words))

print('Index:', df.index)
print('Values:', df.values)

Kết quả này trong:

#Solution 1 - Faster
0

Sử dụng hàm đếm ()

Cách "tiêu chuẩn" (không có thư viện bên ngoài) để có được số lượng từ xuất hiện trong danh sách là bằng cách sử dụng hàm

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 của đối tượng danh sách.

Phương thức

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 là một hàm tích hợp lấy một phần tử làm đối số duy nhất của nó và trả về số lần phần tử xuất hiện trong danh sách.

Độ phức tạp của hàm

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 là O (n), trong đó
#Solution 2 - Fast
7 là số lượng các yếu tố có trong danh sách.O(n), where
#Solution 2 - Fast
7 is the number of factors present in the list.

Mã dưới đây sử dụng

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 để có được số lần xuất hiện cho một từ trong danh sách:

#Solution 1 - Faster
1

Điều này sẽ cung cấp cho chúng ta đầu ra giống như trước khi sử dụng các vòng lặp:

#Solution 1 - Faster
2

Phương pháp

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 cung cấp cho chúng ta một cách dễ dàng để có được số lượng từ xuất hiện trong danh sách cho từng từ riêng lẻ.

Sử dụng bộ đếm của mô -đun bộ sưu tập

Thể hiện lớp

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 có thể được sử dụng, tốt, đếm các thể hiện của các đối tượng khác. Bằng cách chuyển một danh sách vào hàm tạo của nó, chúng tôi khởi tạo một
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 trả về một từ điển của tất cả các yếu tố và sự xuất hiện của chúng trong một danh sách.

Từ đó, để có được một từ xuất hiện, bạn chỉ có thể sử dụng từ làm khóa cho từ điển:

#Solution 1 - Faster
3

Điều này resuts trong:

#Solution 1 - Faster
2

Sử dụng một vòng lặp và một biến bộ đếm

Trong thực tế, bạn sẽ sử dụng gấu trúc/nunpy, hàm

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 hoặc
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 vì chúng khá thuận tiện để sử dụng.

Cách ngắn nhất và dễ nhất để có được số lượng giá trị ở định dạng dễ điều khiển (

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7) là thông qua Numpy và Pandas. Chúng ta có thể gói danh sách thành một mảng numpy, và sau đó gọi phương thức
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
8 của thể hiện
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
9 (cũng có sẵn cho tất cả các trường hợp
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7):

Điều này dẫn đến một

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
7 có chứa:

Bạn có thể truy cập trường

#Solution 2 - Fast
2 của nó để tự mình có được số lượng hoặc
#Solution 2 - Fast
3 để tự nhận các từ:

#Solution 1 - Faster
5

Kết quả này trong:

#Solution 1 - Faster
2

Sử dụng hàm đếm ()

Cách "tiêu chuẩn" (không có thư viện bên ngoài) để có được số lượng từ xuất hiện trong danh sách là bằng cách sử dụng hàm {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3} Simple for loop and storing it in dict - Duration: 12.032000000000153 3 của đối tượng danh sách.

Phương thức

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 là một hàm tích hợp lấy một phần tử làm đối số duy nhất của nó và trả về số lần phần tử xuất hiện trong danh sách.

Độ phức tạp của hàm

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 là O (n), trong đó
#Solution 2 - Fast
7 là số lượng các yếu tố có trong danh sách.

#Solution 1 - Faster
7

Mã dưới đây sử dụng

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 để có được số lần xuất hiện cho một từ trong danh sách:

#Solution 1 - Faster
8

Điều này sẽ cung cấp cho chúng ta đầu ra giống như trước khi sử dụng các vòng lặp:

Phương pháp

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 cung cấp cho chúng ta một cách dễ dàng để có được số lượng từ xuất hiện trong danh sách cho từng từ riêng lẻ.

Sử dụng bộ đếm của mô -đun bộ sưu tập

Thể hiện lớp

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 có thể được sử dụng, tốt, đếm các thể hiện của các đối tượng khác. Bằng cách chuyển một danh sách vào hàm tạo của nó, chúng tôi khởi tạo một
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
4 trả về một từ điển của tất cả các yếu tố và sự xuất hiện của chúng trong một danh sách.

#Solution 1 - Faster
9

Từ đó, để có được một từ xuất hiện, bạn chỉ có thể sử dụng từ làm khóa cho từ điển:

Điều này resuts trong:

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
0

Mã dưới đây sử dụng

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
3 để có được số lần xuất hiện cho một từ trong danh sách:

{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3}
Simple for loop and storing it in dict - Duration: 12.032000000000153
1

Điều này sẽ cung cấp cho chúng ta đầu ra giống như trước khi sử dụng các vòng lặp:

Phương pháp {1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3} Simple for loop and storing it in dict - Duration: 12.032000000000153 3 cung cấp cho chúng ta một cách dễ dàng để có được số lượng từ xuất hiện trong danh sách cho từng từ riêng lẻ.

Sử dụng bộ đếm của mô -đun bộ sưu tập