Bộ sưu tập trong Python: Mọi thứ bạn cần biết về Bộ sưu tập Python



Blog này sẽ trình bày về các kiểu dữ liệu thu thập được tích hợp sẵn trong python cùng với mô-đun bộ sưu tập với tất cả các cấu trúc dữ liệu thu thập chuyên biệt.

Ngôn ngữ lập trình Python có bốn kiểu dữ liệu thu thập- danh sách , tuple, bộ và . Nhưng cũng đi kèm với một mô-đun tích hợp được gọi là bộ sưu tập có cấu trúc dữ liệu chuyên biệt, về cơ bản sẽ giải quyết những thiếu sót của bốn kiểu dữ liệu. Trong blog này, chúng ta sẽ đi sâu vào từng cấu trúc dữ liệu chuyên biệt đó. Sau đây là các chủ đề được che giấu trong blog này:

Bộ sưu tập trong Python là gì?

Các bộ sưu tập trong python về cơ bản là các kiểu dữ liệu vùng chứa, cụ thể là danh sách, bộ, bộ giá trị, từ điển. Chúng có các đặc điểm khác nhau dựa trên khai báo và cách sử dụng.





  • Danh sách được khai báo trong dấu ngoặc vuông, có thể thay đổi, lưu trữ các giá trị trùng lặp và các phần tử có thể được truy cập bằng cách sử dụng các chỉ mục.

  • Một tuple có thứ tự và bất biến về bản chất, mặc dù các mục nhập trùng lặp có thể ở đó bên trong một tuple.



  • Một tập hợp không có thứ tự và được khai báo trong dấu ngoặc vuông. Nó không được lập chỉ mục và cũng không có các mục trùng lặp.

  • Một từ điển có các cặp giá trị chính và có thể thay đổi được. Chúng tôi sử dụng dấu ngoặc vuông để khai báo một từ điển.

Đây là các loại dữ liệu vùng chứa tích hợp sẵn cho mục đích chung của python. Nhưng như chúng ta đều biết, python luôn có một chút gì đó bổ sung để cung cấp. Nó đi kèm với một mô-đun python có tên là bộ sưu tập có cấu trúc dữ liệu chuyên biệt.



Cấu trúc dữ liệu thu thập chuyên biệt

Bộ sưu tập mô-đun trong python triển khai các cấu trúc dữ liệu chuyên biệt cung cấp thay thế cho các kiểu dữ liệu vùng chứa tích hợp của python. Sau đây là các cấu trúc dữ liệu chuyên biệt trong mô-đun tập hợp.

  1. têntuple ()
  2. Sơ đồ chuỗi
  3. Quầy tính tiền
  4. OrderDict
  5. sự mặc định
  6. UserDict
  7. Danh sách người dùng
  8. Chuỗi người dùng

têntuple ()

Nó trả về một bộ giá trị với một mục được đặt tên, có nghĩa là sẽ có một tên được gán cho mỗi giá trị trong bộ giá trị. Nó khắc phục vấn đề truy cập các phần tử bằng cách sử dụng các giá trị chỉ mục. Với têntuple (), việc truy cập các giá trị này trở nên dễ dàng hơn, vì bạn không cần phải nhớ các giá trị chỉ mục để lấy các phần tử cụ thể.

Làm thế nào nó hoạt động?

Trước hết, bạn phải nhập mô-đun bộ sưu tập, nó không yêu cầu cài đặt.

từ bộ sưu tập nhập têntuple

Hãy xem đoạn mã sau để hiểu cách bạn có thể sử dụng têntuple.

a = namestuple ('Course', 'name, tech') s = a ('data science', 'python') print (s) # đầu ra sẽ là các khóa học (name = 'python', tech = 'python')

Làm thế nào để tạo một trùng tên bằng cách sử dụng một danh sách?

s._make (['data science', 'python']) # đầu ra sẽ giống như trước.

deque phát âm là ‘boong’ là một danh sách được tối ưu hóa để thực hiện việc chèn và xóa một cách dễ dàng.

Làm thế nào nó hoạt động?

#creating a deque from collection import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # the output will be deque ([' d ',' u ',' r ',' e ',' k '])

Bây giờ chúng ta hãy xem cách chúng ta sẽ chèn và xóa các mục khỏi deque.

a1.append ('a') print (a1) # đầu ra sẽ là deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # đầu ra sẽ là deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Rõ ràng, việc chèn một thành phần được nâng cao bằng cách sử dụng deque, bạn cũng có thể loại bỏ các thành phần.

a1.pop () print (a1) # đầu ra sẽ là deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # đầu ra sẽ là deque (['d', 'u', 'r', 'e', ​​'k'])

Tương tự như các kiểu dữ liệu dựng sẵn, có một số thao tác khác mà chúng ta có thể thực hiện trên deque. Như đếm các phần tử hoặc xóa deque, v.v.

ChainMap

Nó là một từ điển giống như lớp có thể tạo một chế độ xem duy nhất của nhiều ánh xạ. Về cơ bản, nó trả về danh sách một số từ điển khác. Giả sử bạn có hai từ điển với một số cặp giá trị khóa, trong trường hợp này ChainMap sẽ tạo một danh sách duy nhất có cả hai từ điển trong đó.

Làm thế nào nó hoạt động?

từ bộ sưu tập nhập ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the đầu ra sẽ là ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

Để truy cập hoặc chèn các phần tử, chúng tôi sử dụng các khóa làm chỉ mục. Nhưng để thêm một từ điển mới trong ChainMap, chúng tôi sử dụng cách tiếp cận sau.

a1 = {5: 'AI', 6: 'neural network'} c1 = c.new_child (a1) print (c1) # đầu ra sẽ là ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'khoa học dữ liệu', 4: 'Học máy'}, {5: 'AI', 6: 'mạng thần kinh'}]

Quầy tính tiền

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

Làm thế nào nó hoạt động?

từ bộ sưu tập nhập Bộ đếm a = [1,1,1,1,2,3,3,4,3,3,4] c = Bộ đếm (a) print (c) # đầu ra sẽ là Bộ đếm = ({1: 4, 2: 1, 3: 4, 4: 2})

Ngoài các thao tác bạn có thể thực hiện trên Bộ đếm từ điển còn có 3 thao tác nữa mà chúng ta có thể thực hiện.

tổng các chữ số trong java
  1. chức năng phần tử - Nó trả về một danh sách chứa tất cả các phần tử trong Bộ đếm.
  2. Most_common () - Nó trả về một danh sách được sắp xếp với số lượng của từng phần tử trong Bộ đếm.
  3. Subtract () - Nó lấy một đối tượng có thể lặp lại làm đối số và trừ đi số lượng các phần tử trong Bộ đếm.

OrderDict

Nó là một lớp con từ điển ghi nhớ thứ tự mà các mục được thêm vào. Về cơ bản, ngay cả khi bạn thay đổi giá trị của khóa, vị trí sẽ không bị thay đổi do thứ tự mà nó được chèn trong từ điển.

Làm thế nào nó hoạt động?

từ các bộ sưu tập nhập OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print (from) # đầu ra sẽ là OrderDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Không quan trọng giá trị nào được chèn vào từ điển, OrderedDict ghi nhớ thứ tự mà nó được chèn và lấy kết quả tương ứng. Ngay cả khi chúng ta thay đổi giá trị của khóa. Giả sử, nếu chúng ta thay đổi giá trị khóa 4 thành 8, thứ tự sẽ không thay đổi trong đầu ra.

sự mặc định

Nó là một lớp con từ điển gọi một hàm nhà máy để cung cấp các giá trị còn thiếu. Nói chung, nó không tạo ra bất kỳ lỗi nào khi một giá trị khóa bị thiếu được gọi trong từ điển.

Làm thế nào nó hoạt động?

từ các bộ sưu tập nhập defaultdict d = defaultdict (int) # chúng ta cũng phải chỉ định một kiểu. d [1] = 'edureka' d [2] = 'python' print (d [3]) #it sẽ cho kết quả là 0 thay vì keyerror.

UserDict

Lớp này hoạt động như một trình bao bọc xung quanh các đối tượng từ điển. Sự cần thiết của lớp này xuất phát từ sự cần thiết phải phân lớp trực tiếp từ dict. Việc làm việc với lớp này trở nên dễ dàng hơn khi từ điển bên dưới trở thành một thuộc tính.

class collection.UserDict ([dữ liệu ban đầu])

Lớp này mô phỏng một từ điển. Nội dung của phiên bản được lưu giữ trong một từ điển thông thường có thể được truy cập bằng thuộc tính 'data' của lớp UserDict. Tham chiếu của dữ liệu ban đầu không được lưu giữ để sử dụng cho các mục đích khác.

Danh sách người dùng

Lớp này hoạt động giống như một trình bao bọc xung quanh các đối tượng danh sách. Nó là một lớp cơ sở hữu ích cho danh sách khác như các lớp có thể kế thừa từ chúng và ghi đè các phương thức hiện có hoặc thậm chí thêm một số phương thức mới hơn.

Sự cần thiết của lớp này xuất phát từ sự cần thiết phải phân lớp trực tiếp từ danh sách. Việc làm việc với lớp này trở nên dễ dàng hơn khi danh sách bên dưới trở thành một thuộc tính.

class collection.UserList ([list])

Nó là lớp mô phỏng một danh sách. Nội dung của trường hợp được lưu giữ trong một danh sách thông lệ. Các lớp con của danh sách được dựa vào để cung cấp một phương thức khởi tạo có thể được gọi mà không hoặc không có tranh chấp.

Trong blog này, chúng ta đã tìm hiểu về cấu trúc dữ liệu chuyên biệt đi kèm với mô-đun collection trong python. Tối ưu hóa dẫn đến hiệu suất tốt hơn và kết quả nâng cao. Điều tương tự cũng áp dụng cho nghề nghiệp và kỹ năng của chúng ta. Nếu bạn muốn bắt đầu việc học của mình và tối ưu hóa cách bạn cảm nhận chương trình, hãy đăng ký vào edureka’s và giải phóng khả năng vô tận với python.

Có bất kỳ câu hỏi? đề cập đến họ trong các nhận xét và chúng tôi sẽ liên hệ lại với bạn sớm nhất có thể.