Hướng dẫn dùng collect meaning python - sử dụng python thu thập ý nghĩa



Module collection trong Python được định nghĩa là một bộ chứa được sử dụng để lưu trữ các bộ sưu tập dữ liệu, ví dụ: list, dict, set và tuple,... Nó được giới thiệu để cải thiện các chức năng của bộ chứa bộ sưu tập tích hợp. được định nghĩa là một bộ chứa được sử dụng để lưu trữ các bộ sưu tập dữ liệu, ví dụ: list, dict, set và tuple,... Nó được giới thiệu để cải thiện các chức năng của bộ chứa bộ sưu tập tích hợp.

Nội dung chính ShowShow

  • Hàm namedtuple()
  • Hàm OrderedDict()
  • Hàm defaultdict()
  • Hàm Counter()
  • Hàm deque()
  • Yêu cầu
  • Thêm các trường được đặt tên vào Tuples
  • Thu thập dữ liệu trong từ điển
  • Sử dụng deque để thêm hiệu quả các phần tử vào mỗi bên của bộ sưu tập
  • Kết luận

Nội dung chính

  • Hàm namedtuple()
  • Hàm OrderedDict()
  • Hàm defaultdict()
  • Hàm Counter()
  • Hàm deque()
  • Yêu cầu
  • Thêm các trường được đặt tên vào Tuples
  • Thu thập dữ liệu trong từ điển
  • Sử dụng deque để thêm hiệu quả các phần tử vào mỗi bên của bộ sưu tập
  • Kết luận

Nội dung chính

  • Hàm namedtuple()
  • Hàm OrderedDict()
  • Hàm defaultdict()
  • Hàm Counter()
  • Hàm deque()
  • Yêu cầu
  • Thêm các trường được đặt tên vào Tuples
  • Thu thập dữ liệu trong từ điển
  • Sử dụng deque để thêm hiệu quả các phần tử vào mỗi bên của bộ sưu tập
  • Kết luận

Nội dung chính

Module collection trong Python được giới thiệu lần đầu tiên trong phiên bản 2.4.

Hàm namedtuple()

Có nhiều loại Module collection khác nhau như sau:

test = ('Hello', 24, 'M')  
print(test)  

Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường.

Hàm OrderedDict()

Kết quả:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 

Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường.

Hàm defaultdict()

Kết quả:

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])

Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường.

Hàm Counter()

Hàm deque()

from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])

Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường.

Hàm deque()

Yêu cầu

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)

Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường.



Kết quả:

Python OrderedDict() tương tự như một đối tượng Dictionary trong đó các khóa duy trì thứ tự chèn. Nếu chúng ta cố gắng chèn khóa một lần nữa, giá trị trước đó sẽ bị ghi đè cho khóa đó.


Python defaultdict() được định nghĩa là một đối tượng giống như dictionary. Nó là một lớp con của lớp dict. Nó cung cấp tất cả các phương thức được cung cấp bởi dictionary nhưng lấy đối số đầu tiên làm kiểu dữ liệu mặc định.

Python Count() là một lớp con của đối tượng từ điển giúp đếm các đối tượng hashtable.

Yêu cầu

Thêm các trường được đặt tên vào Tuples

  • Thu thập dữ liệu trong từ điển
  • Sử dụng deque để thêm hiệu quả các phần tử vào mỗi bên của bộ sưu tập
  • Kết luận

Thêm các trường được đặt tên vào Tuples

Thu thập dữ liệu trong từ điển

Sử dụng deque để thêm hiệu quả các phần tử vào mỗi bên của bộ sưu tập

("Sammy", "shark", "tank-a") 

Kết luận

Nội dung chính

Module collection trong Python được giới thiệu lần đầu tiên trong phiên bản 2.4.

Có nhiều loại Module collection khác nhau như sau: Hàm python namedtuple() trả về một đối tượng giống như tuple với tên cho từng vị trí trong bộ dữ liệu. Nó được sử dụng để loại bỏ vấn đề ghi nhớ chỉ số của từng trường của một đối tượng bộ dữ liệu trong các bộ dữ liệu thông thường. Kết quả:
Python OrderedDict() tương tự như một đối tượng Dictionary trong đó các khóa duy trì thứ tự chèn. Nếu chúng ta cố gắng chèn khóa một lần nữa, giá trị trước đó sẽ bị ghi đè cho khóa đó. Python defaultdict() được định nghĩa là một đối tượng giống như dictionary. Nó là một lớp con của lớp dict. Nó cung cấp tất cả các phương thức được cung cấp bởi dictionary nhưng lấy đối số đầu tiên làm kiểu dữ liệu mặc định. Python Count() là một lớp con của đối tượng từ điển giúp đếm các đối tượng hashtable.

Python deque() là hàng đợi hai đầu cho phép chúng ta thêm và xóa các phần tử ở cả hai đầu.

Thứ tư, 19/08/2020 | 00:00 GMT+7

Python 3 có một số cấu trúc dữ liệu được tích hợp sẵn, bao gồm bộ dữ liệu, từ điển và danh sách. Cấu trúc dữ liệu cung cấp cho ta cách tổ chức và lưu trữ dữ liệu. Mô-đun

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 giúp ta điền và thao tác cấu trúc dữ liệu một cách hiệu quả.

from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 

Trong hướng dẫn này, ta sẽ đi qua ba lớp trong mô-đun

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 để giúp bạn làm việc với bộ dữ liệu, từ điển và danh sách. Ta sẽ sử dụng
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
7 để tạo ra bộ dữ liệu với các lĩnh vực được đặt tên,
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 đến thông tin group chính xác trong từ điển, và
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 để thêm hiệu quả các yếu tố để hai bên của một danh sách giống như đối tượng.

Ta có thể sử dụng lớp

from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
9 để đại diện cho bộ cá từ trước đó:

sammy = Fish("Sammy", "shark", "tank-a")  print(sammy) 

Nếu ta chạy mã này, ta sẽ thấy kết quả sau:

Output

Fish(name='Sammy', species='shark', tank='tank-a')

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
4 được khởi tạo bằng cách sử dụng lớp
from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
9 .
from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
4 là một bộ ba với ba nguyên tố được đặt tên rõ ràng.

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
4 có thể được truy cập bằng tên của chúng hoặc bằng index tuple truyền thống:

print(sammy.species) print(sammy[1]) 

Nếu ta chạy hai

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
8 , ta sẽ thấy kết quả sau:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
0

Truy cập

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
9 trả về giá trị giống như truy cập phần tử thứ hai của
from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
4 bằng cách sử dụng
("Sammy", "shark", "tank-a") 
1 .

Sử dụng

from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
3 từ module
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 làm cho chương trình của bạn dễ đọc hơn trong khi vẫn duy trì các thuộc tính quan trọng của một bộ tuple (chúng không thể thay đổi và có thứ tự).

Ngoài ra,

from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
3 nhà máy được đặt tên là bổ sung một số phương thức bổ sung cho các version của
from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
9 .

Sử dụng

("Sammy", "shark", "tank-a") 
6 để chuyển đổi một version thành từ điển:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
1

Nếu ta chạy

from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
8 , bạn sẽ thấy kết quả như sau:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
2

Gọi

("Sammy", "shark", "tank-a") 
8 trên
from collections import deque
list = ["x", "y", "z"]
deq = deque(list)
print(deq)
4 trả về một từ điển ánh xạ từng tên trường trong số ba tên trường với các giá trị tương ứng của chúng.

Các version Python cũ hơn 3.8 có thể xuất dòng này hơi khác một chút. Ví dụ: bạn có thể xem một

from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
0 thay vì từ điển đơn giản được hiển thị ở đây.

Lưu ý: Trong Python, các phương thức có dấu gạch dưới ở đầu thường được coi là "riêng tư". Phương pháp bổ sung được cung cấp bởi

from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
3 (như
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
2 ,
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
3 ,.
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
4 , vv), tuy nhiên, là công khai .
Trong Python, các phương thức có dấu gạch dưới ở đầu thường được coi là "riêng tư". Phương pháp bổ sung được cung cấp bởi
from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
3 (như
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
2 ,
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
3 ,.
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
4 , vv), tuy nhiên, là công khai .

Thu thập dữ liệu trong từ điển

Việc thu thập dữ liệu trong từ điển Python thường rất hữu ích.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 từ module
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 có thể giúp ta thu thập thông tin trong từ điển một cách nhanh chóng và ngắn gọn.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 không bao giờ làm tăng
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 . Nếu một quan trọng là không có mặt,
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 chỉ chèn và trả về một giá trị giữ chỗ thay vì:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
3

Nếu ta chạy mã này, ta sẽ thấy kết quả như sau:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
4

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 chèn và trả về giá trị giữ chỗ thay vì ném
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 . Trong trường hợp này, ta đã chỉ định giá trị trình giữ chỗ dưới dạng danh sách.

Ngược lại, các từ điển thông thường sẽ tạo ra

from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 khi thiếu các khóa:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
5

Nếu ta chạy mã này, ta sẽ thấy kết quả như sau:

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
6

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 chèn và trả về giá trị giữ chỗ thay vì ném
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 . Trong trường hợp này, ta đã chỉ định giá trị trình giữ chỗ dưới dạng danh sách.

Ngược lại, các từ điển thông thường sẽ tạo ra

from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 khi thiếu các khóa:

Từ điển thông thường

sammy = Fish("Sammy", "shark", "tank-a")  print(sammy) 
3 gây ra
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 khi ta cố gắng truy cập vào một khóa không có.

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
7

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 hoạt động khác với một từ điển thông thường. Thay vì tăng
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 trên một khóa bị thiếu,
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 gọi giá trị giữ chỗ không có đối số để tạo một đối tượng mới. Trong trường hợp này,
sammy = Fish("Sammy", "shark", "tank-a")  print(sammy) 
8 để tạo một danh sách trống.

Tiếp tục với ví dụ về bể cá giả tưởng của ta , giả sử ta có một danh sách các bộ cá đại diện cho hàng tồn kho của bể cá:

Ba con cá tồn tại trong bể - tên, loài và bể chứa của chúng được ghi chú trong ba bộ này.

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
8

Mục tiêu của ta là sắp xếp hàng tồn kho của ta theo bể — ta muốn biết danh sách cá có trong mỗi bể. Nói cách khác, ta muốn có một từ điển ánh xạ

sammy = Fish("Sammy", "shark", "tank-a")  print(sammy) 
9 thành

Output

Fish(name='Sammy', species='shark', tank='tank-a')
0 và

Output

Fish(name='Sammy', species='shark', tank='tank-a')
1 thành

Output

Fish(name='Sammy', species='shark', tank='tank-a')
2 .

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
9

Ta có thể sử dụng

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 để group cá theo bể:

Chạy mã này, ta sẽ thấy kết quả sau:

Output

Fish(name='Sammy', species='shark', tank='tank-a')
4 được khai báo là một
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 rằng giá trị mặc định để chèn
sammy = Fish("Sammy", "shark", "tank-a")  print(sammy) 
8 thay vì ném một
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 . Vì điều này đảm bảo mọi khóa trong

Output

Fish(name='Sammy', species='shark', tank='tank-a')
4 sẽ trỏ đến một

Output

Fish(name='Sammy', species='shark', tank='tank-a')
9 , ta có thể tự do gọi
print(sammy.species) print(sammy[1]) 
0 để thêm tên vào danh sách của mỗi bể.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 giúp bạn ở đây vì nó làm giảm nguy cơ xảy ra các
print(sammy.species) print(sammy[1]) 
2 không mong muốn. Giảm các
print(sammy.species) print(sammy[1]) 
2 không mong muốn nghĩa là chương trình của bạn có thể được viết rõ ràng hơn và ít dòng hơn. Cụ thể hơn, thành ngữ
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 cho phép bạn tránh tạo danh sách trống cho mọi bể theo cách thủ công.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
0

Nếu không có

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 thì
print(sammy.species) print(sammy[1]) 
6 cơ thể loop có thể trông như thế này:

Thêm ví dụ chi tiết mà không có phán đoán mặc định

Sử dụng chỉ một từ điển thông thường (thay vì một from collections import defaultdict number = defaultdict(int) number['one'] = 1 number['two'] = 2 print(number['three']) 8 ) nghĩa là print(sammy.species) print(sammy[1]) 6 thân vòng lặp luôn luôn phải kiểm tra sự tồn tại của cho print(sammy.species) print(sammy[1]) 9 trong OutputFish(name='Sammy', species='shark', tank='tank-a') 4 . Chỉ sau khi ta xác minh print(sammy.species) print(sammy[1]) 9 đã có trong OutputFish(name='Sammy', species='shark', tank='tank-a') 4 hoặc vừa được khởi tạo bằng import collections d1 = collections.OrderedDict() d1['A'] = 10 d1['C'] = 12 d1['B'] = 11 d1['D'] = 13 d1['C'] = 15 for k, v in d1.items(): print (k, v) 03 , ta mới có thể thêm tên cá vào.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 có thể giúp cắt giảm mã soạn sẵn khi điền từ điển vì nó không bao giờ gây ra
from collections import namedtuple  Fish = namedtuple("Fish", ["name", "species", "tank"]) 
8 .

Theo ký hiệu Big O , việc thêm vào một danh sách là một phép toán

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 thời gian không đổi. Ngược lại, việc chèn vào đầu danh sách sẽ chậm hơn với hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 .

Lưu ý: Các kỹ sư phần mềm thường đo lường hiệu suất của các thủ tục bằng cách sử dụng ký hiệu “Big O”. Khi kích thước của một đầu vào không ảnh hưởng đến thời gian thực hiện một thủ tục, nó được cho là chạy trong thời gian không đổi hoặc

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 (“O lớn của 1”). Như bạn đã học ở trên, Python có thể thêm vào danh sách với hiệu suất thời gian không đổi, còn gọi là
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 .
Các kỹ sư phần mềm thường đo lường hiệu suất của các thủ tục bằng cách sử dụng ký hiệu “Big O”. Khi kích thước của một đầu vào không ảnh hưởng đến thời gian thực hiện một thủ tục, nó được cho là chạy trong thời gian không đổi hoặc
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 (“O lớn của 1”). Như bạn đã học ở trên, Python có thể thêm vào danh sách với hiệu suất thời gian không đổi, còn gọi là
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 .

Đôi khi, kích thước của đầu vào ảnh hưởng trực tiếp đến lượng thời gian cần để chạy một thủ tục. Ví dụ: việc chèn vào đầu danh sách Python chạy càng chậm khi càng có nhiều phần tử trong danh sách. Ký hiệu Big O sử dụng chữ cái

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
10 để biểu thị kích thước của đầu vào. Điều này nghĩa là việc thêm các mục vào đầu danh sách Python chạy trong “thời gian tuyến tính” hoặc
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 (“O lớn của n”).

Nói chung, thủ tục

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 nhanh hơn thủ tục
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 .

Ta có thể chèn vào đầu danh sách Python:

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
1

Nếu ta chạy như sau, ta sẽ thấy kết quả như sau:

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
2

Phương thức

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
14 trong danh sách cho phép ta chèn
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
15 vào đầu
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
16 . Tuy nhiên, đáng chú ý, việc chèn vào đầu danh sách có hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 . Khi độ dài của
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
16 càng tăng, thời gian để chèn một con cá vào đầu danh sách sẽ tăng theo tỷ lệ thuận và ngày càng lâu hơn.

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 (phát âm là “boong”) từ module
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 là một đối tượng giống như danh sách cho phép ta chèn các mục vào đầu hoặc cuối của một chuỗi với hiệu suất thời gian không đổi (
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 ).

Chèn một mục vào đầu

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 :

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
3

Chạy mã này, ta sẽ thấy kết quả sau:

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
4

Ta có thể khởi tạo

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 bằng cách sử dụng một tập hợp các phần tử có sẵn, trong trường hợp này là danh sách ba tên cá yêu thích. Gọi
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
24 's
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
25 phương pháp cho phép ta chèn một mục vào đầu bộ sưu tập của ta với
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 hiệu suất.
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 hiệu suất nghĩa là thời gian cần thêm một mục vào đầu
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
24 sẽ không tăng lên ngay cả khi
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
24 có hàng nghìn hoặc hàng triệu phần tử.

Lưu ý: Mặc dù

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 thêm các mục vào đầu một chuỗi hiệu quả hơn một danh sách, nhưng
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 không thực hiện tất cả các hoạt động của nó hiệu quả hơn một danh sách. Ví dụ: truy cập một mục ngẫu nhiên trong
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 có hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 , nhưng truy cập một mục ngẫu nhiên trong danh sách có hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 . Sử dụng
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 khi cần nhanh chóng chèn hoặc xóa các phần tử từ một trong hai bên của bộ sưu tập. So sánh đầy đủ về hiệu suất thời gian có sẵn trên wiki của Python .
Mặc dù
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 thêm các mục vào đầu một chuỗi hiệu quả hơn một danh sách, nhưng
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 không thực hiện tất cả các hoạt động của nó hiệu quả hơn một danh sách. Ví dụ: truy cập một mục ngẫu nhiên trong
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 có hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
07 , nhưng truy cập một mục ngẫu nhiên trong danh sách có hiệu suất
import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
06 . Sử dụng
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 khi cần nhanh chóng chèn hoặc xóa các phần tử từ một trong hai bên của bộ sưu tập. So sánh đầy đủ về hiệu suất thời gian có sẵn trên wiki của Python .

Kết luận

Mô-đun

from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 là một phần mạnh mẽ của thư viện chuẩn Python cho phép bạn làm việc với dữ liệu một cách ngắn gọn và hiệu quả. Hướng dẫn này bao gồm ba trong số các lớp được cung cấp bởi module
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
5 bao gồm
from collections import Counter
c = Counter()
list = [1, 2, 3, 4, 5, 7, 8, 5, 9, 6, 10]
Counter(list)
Counter({1:5, 2:4})
list = [1, 2, 4, 7, 5, 1, 6, 7, 6, 9, 1]
c = Counter(list)
print(c[1])
3 ,
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
8 và
from collections import defaultdict
number = defaultdict(int)
number['one'] = 1
number['two'] = 2
print(number['three'])
9 .

Từ đây, bạn có thể sử dụng tài liệu của module

import collections  
d1 = collections.OrderedDict()  
d1['A'] = 10  
d1['C'] = 12  
d1['B'] = 11  
d1['D'] = 13  
d1['C'] = 15  
  
for k, v in d1.items():  
    print (k, v) 
41 để tìm hiểu thêm về các lớp và tiện ích có sẵn khác. Để tìm hiểu thêm về Python nói chung, bạn có thể đọc loạt bài hướng dẫn Cách viết mã trong Python 3 của ta .


Tags:


Các tin liên quan

Cách chuyển đổi kiểu dữ liệu trong Python 3 2020-08-07 Cách sử dụng hàm bản đồ Python 2020-08-03 Cách sử dụng quy trình con để chạy các chương trình bên ngoài trong Python 3 2020-07-30 Làm thế nào để đánh lừa một mạng neural trong Python 3 2020-07-30 Cách sử dụng hàm bộ lọc Python 2020-07-24 Cách sử dụng module pathlib để thao tác đường dẫn hệ thống tệp trong Python 3 2020-07-15 Cách tạo Slackbot bằng Python trên Ubuntu 20.04 2020-06-30 Cách sử dụng ThreadPoolExecutor trong Python 3 2020-06-23 Cách sử dụng module sqlite3 trong Python 3 2020-06-02 Cách thiết lập notebook Jupyter với Python 3 trên Ubuntu 20.04 và Kết nối qua Đường hầm SSH 2020-05-19
2020-08-07
Cách sử dụng hàm bản đồ Python
2020-08-03
Cách sử dụng quy trình con để chạy các chương trình bên ngoài trong Python 3
2020-07-30
Làm thế nào để đánh lừa một mạng neural trong Python 3
2020-07-30
Cách sử dụng hàm bộ lọc Python
2020-07-24
Cách sử dụng module pathlib để thao tác đường dẫn hệ thống tệp trong Python 3
2020-07-15
Cách tạo Slackbot bằng Python trên Ubuntu 20.04
2020-06-30
Cách sử dụng ThreadPoolExecutor trong Python 3
2020-06-23
Cách sử dụng module sqlite3 trong Python 3
2020-06-02
Cách thiết lập notebook Jupyter với Python 3 trên Ubuntu 20.04 và Kết nối qua Đường hầm SSH
2020-05-19