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.
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ư
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 namedtuple Fish = namedtuple["Fish", ["name", "species", "tank"]]
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ư
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 .from collections import namedtuple Fish = namedtuple["Fish", ["name", "species", "tank"]]
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 Output
Fish[name='Sammy', species='shark', tank='tank-a']
4 . Chỉ sau khi ta xác minh print[sammy.species] print[sammy[1]]
9 đã có trong Output
Fish[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.
print[sammy.species] print[sammy[1]]
print[sammy.species] print[sammy[1]]
Output
Fish[name='Sammy', species='shark', tank='tank-a']
print[sammy.species] print[sammy[1]]
Output
Fish[name='Sammy', species='shark', tank='tank-a']
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