Cấu trúc dữ liệu bộ sưu tập Python

Trong lập trình máy tính, một tập hợp là một nhóm các kiểu dữ liệu giống nhau. Các lớp đơn vị này có thể hỗ trợ tổ chức và quản lý các hạng mục liên quan

Bộ sưu tập có các cấu trúc dữ liệu giúp quản lý khối lượng dữ liệu khổng lồ một cách hiệu quả. Mô-đun

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
1 trong Python cung cấp nhiều loại vùng chứa

Các thùng chứa có thể lưu trữ nhiều loại mặt hàng và có thể được tạo lại. Các vùng chứa này bao gồm bộ dữ liệu, danh sách, từ điển, v.v.

Trong bài viết này, chúng ta sẽ khám phá một số vùng chứa được tìm thấy trong mô-đun

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
2

điều kiện tiên quyết

Để hiểu nội dung của bài viết này, bạn nên có những điều sau đây

  1. Một số kiến ​​thức về lập trình Python
  2. Python đã cài đặt. Bạn cũng có thể sử dụng trình biên dịch Python trực tuyến để chạy các đoạn mã

Mục lục

  • Kiểu dữ liệu bộ sưu tập
  • mô-đun bộ sưu tập
  • Triển khai các mô-đun bộ sưu tập Python
  • Phần kết luận

Các loại dữ liệu bộ sưu tập

Như đã đề cập trước đó, các kiểu dữ liệu bộ sưu tập có thể được sử dụng để lưu trữ một bộ sưu tập các mục. đó là

  1. Danh sách - Danh sách được tạo lặp lại có thể được sửa đổi bằng cách thêm hoặc xóa các phần tử. Để tạo danh sách, hãy sử dụng dấu ngoặc vuông

    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    3

  2. Bộ - Không cho phép sao chép trong bộ sưu tập các mục duy nhất không có thứ tự, không thay đổi. Một tập hợp các loại dữ liệu có thể được sử dụng để thực hiện các phép toán như giao, hợp và hiệu đối xứng. Các bộ có thể được tạo bằng cách sử dụng dấu ngoặc nhọn sau tên biến hoặc hàm tạo

    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    4

  3. Tuples - Chúng là một chuỗi có thứ tự, bất biến của nhiều thứ được giữ trong một biến. Một bộ là một tên biến theo sau bởi hai dấu ngoặc đơn và dấu phẩy. Python yêu cầu dấu phẩy ở cuối để xác định nó là một chuỗi. Sau tên biến, một bộ có thể được xây dựng bằng cách sử dụng một cặp dấu ngoặc đơn và các đối tượng được phân tách bằng dấu phẩy

  4. Từ điển - Một từ điển bao gồm các cặp khóa/giá trị chưa được sắp xếp. Có thể có bất kỳ số cặp khóa và giá trị nào. Từ điển, giống như bộ, thiếu thứ tự và sau khi tạo, chúng có thể bị sửa đổi. Tràn giá trị và chỉ giá trị được thêm gần đây nhất được trả về nếu từ điển chứa nhiều mục

Các loại dữ liệu trên có thể được phân biệt thành loại có thể thay đổi, không thay đổi, loại thiết lập và ánh xạ

Bây giờ, hãy so sánh và đối chiếu các danh sách, bộ dữ liệu và tập hợp

Điểm tương đồng

  1. Họ có thể xử lý bất kỳ loại dữ liệu
  2. Do tính linh hoạt của chúng, danh sách và bộ có thể được sửa đổi sau khi tạo
  3. Danh sách và bộ dữ liệu đều là tập hợp có thứ tự
  4. Danh sách và bộ dữ liệu có thể chia sẻ các mục

sự khác biệt

  1. Một tập hợp không thể được gọi bằng chỉ mục hoặc khóa vì nó chưa được sắp xếp và có thể xuất hiện theo bất kỳ thứ tự nào
  2. Không giống như danh sách và bộ dữ liệu, bộ chỉ chấp nhận một trong hai phần tử giống hệt nhau
  3. Các bộ dữ liệu là bất biến, có nghĩa là chúng không thể được sửa đổi sau khi được tạo trong Python

Các mô-đun bộ sưu tập

Mô-đun Python

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
2 cung cấp giải pháp thay thế cho các kiểu dữ liệu vùng chứa tích hợp sẵn của Python. Các cấu trúc dữ liệu cụ thể của mô-đun
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
1 được liệt kê bên dưới

  • import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    7
  • import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    8
  • import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    9
  • Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    0
  • Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    1
  • Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    2
  • Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    3
  • Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    4

Hãy xem xét từng cái một

1. mặc định

Đó là một lớp con từ điển chạy chức năng xuất xưởng để điền vào các giá trị còn thiếu trong từ điển. Thường không có vấn đề nào xảy ra khi giá trị khóa bị thiếu của từ điển được sử dụng

Đoạn mã dưới đây minh họa mô-đun

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
5

Đoạn mã trên xuất ra

Value1 29
Value2 30
Value3 33
Value4 44
6 vì nó là số nguyên mặc định

2. Ra lệnhDict

Các lớp con của từ điển theo dõi trình tự mà chúng được thêm vào. Logic quy định rằng ngay cả khi bạn thay đổi giá trị của khóa, vị trí của khóa sẽ không thay đổi do chuỗi mục nhập

Đoạn mã dưới đây minh họa mô-đun

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
8

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)

Đầu ra mã sẽ là

Value1 29
Value2 30
Value3 33
Value4 44

3. têntuple

Hàm này sẽ cung cấp cho mỗi giá trị trong bộ dữ liệu một tên duy nhất. Nó loại bỏ yêu cầu đối với các giá trị chỉ mục. Việc truy xuất các giá trị này bằng cách sử dụng

Value1 29
Value2 30
Value3 33
Value4 44
8 sẽ dễ dàng hơn nhiều vì bạn không cần phải nhớ các giá trị chỉ mục

Đoạn mã dưới đây minh họa hàm

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
9

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
2

Đầu ra của mã sẽ là

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
3

4. Bản Đồ Chuỗi

Đó là một từ vựng cho một tập hợp các ánh xạ trả về nhiều từ điển. ChainMap sẽ tạo một danh sách nếu cả hai từ điển có nhiều cặp khóa-giá trị

5. deque

Một

Value1 29
Value2 30
Value3 33
Value4 44
1, phát âm là “bộ bài”, là một danh sách được thiết kế để giúp việc thêm và xóa các mục trở nên đơn giản

Đoạn mã dưới đây minh họa mô-đun

Value1 29
Value2 30
Value3 33
Value4 44
1

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
6

Đầu ra mã sẽ là

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7

6. phản đối

Bộ đếm là một lớp con của từ điển được sử dụng để đếm các mục có thể băm

Đoạn mã dưới đây minh họa mô-đun

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
22

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
9

Đầu ra của mã sẽ là giá trị.

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
23

7. Danh sách người dùng

Lớp này bao bọc một danh sách những thứ. Sử dụng lớp này làm cơ sở cho phép các lớp giống như danh sách khác ghi đè các phương thức hiện có hoặc thêm các phương thức mới

Lớp này được xây dựng để phân lớp từ một danh sách. Danh sách cơ bản hiện là thuộc tính lớp, giúp sử dụng đơn giản hơn. Đó là lớp tạo ra một đối tượng giống như danh sách

Khi một sự kiện xảy ra, nó được ghi lại trong một danh sách tiêu chuẩn. Một hoặc không có tranh chấp nào có thể được gọi trên hàm tạo được cung cấp bởi các lớp con của danh sách

8. Người dùngDict

Từ điển được gói gọn trong lớp này. Phân lớp từ

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
24 yêu cầu tạo lớp này. Từ điển hiện là thuộc tính của lớp để dễ sử dụng hơn

Lớp này hoạt động giống như một cuốn từ điển và thật thú vị khi chơi cùng. Người dùng có thể lấy dữ liệu của cá thể bằng từ điển tiêu chuẩn, sử dụng trường dữ liệu của lớp

Value1 29
Value2 30
Value3 33
Value4 44
3. Để được sử dụng cho các lý do khác, dữ liệu gốc không được duy trì

Triển khai các mô-đun bộ sưu tập Python

Các mô-đun bộ sưu tập có thể được sử dụng để

  1. Cải thiện khả năng đọc mã của bạn bằng cách sử dụng
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    26
  2. Hàng đợi và ngăn xếp được sử dụng để xây dựng hàng đợi và ngăn xếp hiệu quả
  3. Mô-đun
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    7 được sử dụng để xử lý các khóa bị thiếu
  4. Sắp xếp thứ tự từ điển của bạn bằng cách sử dụng mô-đun
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    8
  5. Đếm nhiều đối tượng cùng lúc bằng mô-đun
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    22
  6. Tùy chỉnh các phần tích hợp sẵn bằng cách sử dụng các mô-đun
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    30,
    Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    4 và
    Value1 29
    Value2 30
    Value3 33
    Value4 44
    
    3

Hãy xem xét một trong những triển khai

Xử lý các phím bị thiếu bằng mô-đun defaultdict

Từ điển trong Python là các thùng chứa ánh xạ một khóa thành một giá trị duy nhất, với độ phức tạp về thời gian truy cập là 0(1)

Tuy nhiên, người dùng có thể không quen thuộc với tất cả các phím từ điển trong nhiều ứng dụng. Thông báo lỗi được hiển thị bất cứ khi nào người dùng cố gắng truy cập khóa không khả dụng

Khóa bị thiếu có thể được xử lý bằng các phương pháp

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7,
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
34 và
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
35. Nhưng trong ví dụ này, chúng ta sẽ sử dụng phương thức
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7 để xử lý các key bị thiếu

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7 làm tham số mong đợi một hàm (nhà máy mặc định) làm đối số của nó. Nhà máy mặc định được đặt thành
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
38, nghĩa là. 0. Giá trị xuất xưởng mặc định được trả về nếu
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7 không có khóa. Nó có những ưu điểm sau so với
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
34 và
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
35

  1. Một giá trị mặc định được đặt tại khai báo. Không cần gọi hàm với các đối số giống nhau, tiết kiệm thời gian
  2. Việc triển khai
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    34 và
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    63 mất nhiều thời gian hơn
    import collections
    
    K = collections.OrderedDict()
    K['Value1'] = 29
    K['Value2'] = 30
    K['Value3'] = 33
    K['Value4'] = 44
    
    
    for x,y in K.items():
        print (x,y)
    
    64

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
2

đầu ra sẽ là

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
3

Từ đoạn mã trên, chúng tôi đã khai báo giá trị

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
7 và giá trị của nó là chuỗi
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
66 bằng cách sử dụng

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
0

Các giá trị của

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
67 và y lần lượt được bắt đầu. Cuối cùng, chúng tôi đã in giá trị được liên kết với
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
67 và
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
69, trong đó có
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
67 và thiếu
import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
69

Phần kết luận

Thư viện

import collections

K = collections.OrderedDict()
K['Value1'] = 29
K['Value2'] = 30
K['Value3'] = 33
K['Value4'] = 44


for x,y in K.items():
    print (x,y)
1 là một trong nhiều thư viện của Python chủ yếu phục vụ như một menu cao cấp trong kiểu dữ liệu bộ sưu tập. Chúng ta đã tìm hiểu chi tiết về các kiểu dữ liệu và mô-đun bộ sưu tập và xem cách triển khai các mô-đun bộ sưu tập để giải quyết các vấn đề trong từ điển Python

Các kiểu dữ liệu bộ sưu tập trong Python là gì?

Có bốn loại dữ liệu tập hợp trong ngôn ngữ lập trình Python. .
Danh sách là một bộ sưu tập được sắp xếp và thay đổi. .
Tuple là một bộ sưu tập được sắp xếp và không thể thay đổi. .
Set là một bộ sưu tập không có thứ tự, không thể thay đổi* và không được lập chỉ mục. .
Từ điển là một bộ sưu tập được sắp xếp theo thứ tự** và có thể thay đổi

4 được xây dựng là gì

Python có bốn cấu trúc dữ liệu sẵn có không nguyên thủy là Danh sách, Từ điển, Bộ và Tập hợp .

Python có tốt cho cấu trúc dữ liệu không?

Cấu trúc dữ liệu là nguyên tắc cơ bản của bất kỳ ngôn ngữ lập trình nào mà chương trình được xây dựng xung quanh đó. Python giúp tìm hiểu kiến ​​thức cơ bản của các cấu trúc dữ liệu này theo cách đơn giản hơn so với các ngôn ngữ lập trình khác .

Bộ sưu tập Python có được xây dựng không

Bộ sưu tập là một mô-đun Python tích hợp sẵn triển khai các kiểu dữ liệu vùng chứa chuyên biệt cung cấp các lựa chọn thay thế cho các vùng chứa tích hợp sẵn cho mục đích chung của Python chẳng hạn như dict , list , set và tuple.