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.
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.
{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: 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
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
3{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
- Sử dụng mô -đun bộ sưu tập
4{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
- 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
0Sử 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
3 là O [n], 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
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.#Solution 2 - Fast
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
2Phươ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
2Sử 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
5Kết quả này trong:
#Solution 1 - Faster
2Sử 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.
{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
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
7Mã 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
9Từ đó, để 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
0Mã 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ẻ.
{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
Sử dụng bộ đếm của mô -đun bộ sưu tập