Việc giải nén một chuỗi trong Python có nghĩa là gì?

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về việc đóng gói và giải nén các đối số. Python cung cấp một tính năng độc đáo để đóng gói hoặc giải nén các đối số. Giả sử chúng ta có một hàm nhận năm đối số; . Chúng ta cần chuyển năm đối số riêng biệt cho hàm

Trước đây, các nhà phát triển Python gọi tính năng này là giải nén bộ dữ liệu, nhưng nó đã trở nên khá hữu ích và phổ biến trong số họ. Do đó, tính năng này được khái quát hóa cho tất cả các loại iterables;

Chúng tôi sẽ thảo luận về cách chúng tôi có thể sử dụng giải nén lặp lại để làm cho mã của chúng tôi dễ đọc hơn

Ngoài ra, chúng ta cũng sẽ khám phá một số ví dụ thực tế về vòng lặp, định nghĩa hàm và gọi hàm

Đóng gói và giải nén trong Python

Python cung cấp cơ sở để khai báo các biến ở phía bên trái của hoạt động gán. Các biến này có thể có cùng số lượng phần tử bộ. Mỗi biến trong bộ có thể có một giá trị [hoặc nhiều hơn nếu sử dụng toán tử *] từ iterable ở phía bên phải của phép gán. Các nhà phát triển Python gọi quá trình này là giải nén bộ dữ liệu. Dưới đây là định nghĩa của các đối số đóng gói và giải nén

Đóng gói - Như tên gọi của nó, nó gói gọn tất cả các đối số vào một biến duy nhất và lệnh gọi hàm này được đưa vào một bộ gọi là args. Chúng ta có thể sử dụng bất kỳ tên nào khác thay cho args

  • Ví dụ. chức năng xác định[ *args ]

Giải nén - Giải nén là thuật ngữ dùng để chỉ một danh sách hoạt động hoặc bộ dữ liệu được gán cho một biến duy nhất

  • Ví dụ - [a, b, c] = Danh sách/bộ

Giải nén làm cho mã dễ đọc hơn, đó là lý do tại sao nó trở nên phổ biến đối với các nhà phát triển Python. Hãy lấy một ví dụ để hiểu cách giải nén hoạt động trong Python

Giải nén Tuples

Python cho phép chúng ta gán các bộ của biến ở phía bên trái của toán tử gán và các giá trị của bộ ở phía bên phải. Nếu các biến có cùng số với giá trị bộ, thì giá trị sẽ tự động được gán sang bên trái theo vị trí của chúng ở bên trái. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

Như chúng ta có thể thấy, chúng ta đã đặt bộ dữ liệu ở cả hai phía của toán tử gán. Các giá trị của bộ dữ liệu được gán cho các biến theo vị trí tương đối của chúng. Chẳng hạn như a sẽ là 1, b sẽ là 2, v.v.

Chúng ta không cần tạo tuple ở cả hai bên;

Ví dụ -

Lưu ý - Số biến ở vế trái phải bằng số phần tử của bộ ở vế phải của toán tử gán. Nếu không, nó sẽ ném một ValueError

Trong ví dụ dưới đây, chúng tôi sử dụng bốn biến ở bên trái và năm giá trị ở bên phải. Nó sẽ thông qua ValueError vì có quá nhiều giá trị để giải nén

Ví dụ -

đầu ra

ValueError: too many values to unpack [expected 4]

Giải nén Iterables

Hoạt động giải nén Tuple được mở rộng cho các lần lặp khác của Python. Yêu cầu duy nhất là mục đó mang lại cùng một mục cho mỗi biến khi nhận trong bộ [hoặc danh sách]

Hãy hiểu ví dụ sau -

Ví dụ -

đầu ra

1
2
3
Unpacking lists
1
2
3
Unpacking generators
0
1
4
Unpacking dictionaries [keys, values, and items
one
two
three
Unpack values
1
2
3
Unpacking key-value pairs
['one', 1]
['two', 2]
['three', 3]

Mặt khác, chúng ta có thể sử dụng cách sau để giải nén đối số trong đó danh sách/bộ xác định ở bên trái của toán tử gán và các giá trị ở bên phải

Ví dụ -

đầu ra

Tuy nhiên, nó không được khuyến nghị trong mã thực tế vì nó có thể hơi khó hiểu đối với các nhà phát triển Python mới bắt đầu

Chúng ta cũng có thể sử dụng các thao tác giải nén tập hợp vì các tập hợp là tập hợp không có thứ tự. Vì vậy, thứ tự của các bài tập có thể gây ra lỗi tinh vi. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

Bộ trả về các phần tử không có thứ tự, vì vậy nó cũng sẽ xảy ra với đối số giải nén. Vì vậy, nên tránh thao tác giải nén đã đặt

Đóng gói với * Nhà khai thác

Toán tử * là toán tử giải nén tuple [hoặc iterables]. Nó cho phép đóng gói nhiều giá trị vào một biến duy nhất. Chúng tôi đóng gói một bộ giá trị vào một biến duy nhất bằng cách sử dụng các toán tử * trong ví dụ sau

Ví dụ -

đầu ra

Phía bên trái của phép gán phải là một bộ [hoặc một danh sách]. Đó là chúng ta sử dụng dấu phẩy sau

Hãy xem một cách khác để đóng gói các đối số

Ví dụ -

đầu ra

Trong đoạn mã trên, chúng tôi đóng gói các giá trị theo sau trong b

đầu ra

Đóng gói không có giá trị trong a [a mặc định là []] vì b, c và d là bắt buộc

Ví dụ -

đầu ra

Nếu chúng ta không truyền giá trị cho biến bắt buộc, nó sẽ báo lỗi

Ví dụ -

đầu ra

ValueError: not enough values to unpack [expected at least 4, got 3]

Việc đóng gói giá trị trong một biến duy nhất bằng toán tử * có thể hữu ích khi chúng ta muốn truy cập các phần tử từ trình tạo trong một biến duy nhất mà không cần sử dụng hàm list[]. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

 at 0x7fcc4aec0ac0>
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Giải trình -

Trong đoạn mã trên, chúng ta đã đóng gói phần tử trong gen vào g và lần lượt chạy vào r. Sử dụng điều này, chúng ta có thể bỏ qua hàm list[] để tạo danh sách các giá trị từ đối tượng phạm vi

Hoạt động đóng gói và mở gói đồng thời

Chúng tôi đã thảo luận về việc đóng gói và giải nén riêng lẻ và bây giờ chúng tôi sẽ triển khai cả hai khái niệm trong thực tế. Đóng gói và giải nén cho phép lập trình viên viết mã Pythonic dễ đọc hơn, rõ ràng hơn. Hãy xem một số ví dụ về đóng gói và giải nén

Gán song song

Chuyển nhượng song song là trường hợp sử dụng giải nén phổ biến nhất trong Python. Như đã thảo luận trước đó, chúng ta có thể gán nhiều biến theo một iterable [tuple hoặc list]

Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

The name is:  Mathew Wade
The age is:  400000$
The profile is:  Software Engineer

Đoạn mã trên khá truyền thống và khá vụng về, khó gõ. Chúng tôi có thể làm cho nó dễ dàng hơn và dễ đọc hơn như dưới đây

Ví dụ -

đầu ra

The name is:  Mathew Wade
The age is:  400000$
The profile is:  Software Engineer

Như chúng ta có thể thấy, bằng cách giải nén, chúng tôi đã giảm số lượng dòng và làm cho nó đơn giản và thanh lịch

Hoán đổi giá trị giữa các biến

Chúng ta có thể hoán đổi các giá trị trong Python mà không cần sử dụng biến tạm thời hoặc biến phụ. Hãy hiểu ví dụ sau về hoán đổi

Ví dụ - Không hoán đổi

đầu ra

Ví dụ -

đầu ra

Trong câu lệnh a, b = b, a, chúng ta đang gán lại a cho b và b cho a trong một dòng mã. Nó dễ đọc và đơn giản hơn rất nhiều. Ngoài ra, lưu ý rằng với kỹ thuật này, không cần một biến tạm thời mới

Bỏ các giá trị không cần thiết với *

Chúng ta có thể sử dụng * để loại bỏ các giá trị không cần thiết. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

Trả về Tuple trong Hàm

Chúng ta có thể trả về nhiều giá trị được phân tách bằng dấu phẩy từ hàm Python. Vì chúng ta có thể định nghĩa đối tượng bộ dữ liệu mà không cần sử dụng dấu ngoặc đơn, loại hoạt động này có thể được hiểu là trả về một bộ giá trị. Nếu chúng ta viết mã một hàm trả về nhiều giá trị, thì chúng ta có thể thực hiện các thao tác đóng gói và giải nén có thể lặp lại với các giá trị được trả về

Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

[8, 64, 512]
8
64
512
8

Hợp nhất các Iterable với * Toán tử

Một trường hợp sử dụng thú vị khác cho toán tử giải nén * là khả năng hợp nhất một số lần lặp lại thành một chuỗi cuối cùng. Chức năng này hoạt động cho danh sách, bộ dữ liệu và bộ. Hãy xem các ví dụ sau

Ví dụ -

đầu ra

[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
{0, 1, 2, 3, 4}
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, '1', '2', '3']

Chúng ta có thể sử dụng toán tử giải nén lặp lại * khi xác định các chuỗi để giải nén các phần tử của một chuỗi con [hoặc có thể lặp lại] vào chuỗi cuối cùng. Nó sẽ cho phép chúng ta tạo các chuỗi nhanh chóng từ các chuỗi hiện có mà không cần gọi các phương thức như append[] và insert[], v.v.

Giải nén từ điển với toán tử *

Python cung cấp toán tử ** để giải nén từ điển. Toán tử này còn được gọi là toán tử giải nén từ điển. Việc sử dụng toán tử này đã được mở rộng bởi PEP 448. Bây giờ, chúng ta có thể sử dụng nó trong các lời gọi hàm và hiểu danh sách

Ví dụ -

đầu ra

________số 8_______

Giải trình -

Trong đoạn mã trên, chúng tôi đã tạo hai từ điển;

Giải nén các vòng lặp For

Chúng ta cũng có thể sử dụng tính năng giải nén lặp lại trong ngữ cảnh của vòng lặp for. Khi chúng ta chạy vòng lặp for, vòng lặp sẽ gán một mục có thể lặp lại của nó cho biến mục tiêu trong mỗi lần lặp. Nếu mục được chỉ định là một mục có thể lặp lại, thì chúng ta có thể sử dụng một bộ biến mục tiêu

Hãy hiểu ví dụ sau -

Ví dụ -

đầu ra

Marks of Mathew is: 135
Marks of Warner is: 155
Marks of Kapil is: 175

Phần kết luận

Iterable unpacking là một tính năng cần thiết và khá hữu ích trong Python. Tính năng này cho phép chúng tôi giải nén một lần lặp thành nhiều biến. Trong hướng dẫn này, chúng ta đã thảo luận về một số khái niệm quan trọng về giải nén và đóng gói có thể lặp lại. Chúng tôi đã thấy một số ví dụ có giá trị và cách viết mã Pythonic dễ đọc hơn, dễ bảo trì hơn

Kiến thức này có thể giải quyết các vấn đề phổ biến như gán song song và hoán đổi giá trị giữa các biến. Chúng ta cũng có thể sử dụng tính năng này trong các khái niệm Python khác như vòng lặp

Việc giải nén một chuỗi có nghĩa là gì?

Đầu tiên tôi sẽ giải thích thuật ngữ 'giải nén trình tự' nghĩa là gì. Theo thuật ngữ thông thường, giải nén trình tự có nghĩa là gán các phần tử của một lần lặp thành nhiều biến .

Tuple và trình tự giải nén trong cấu trúc dữ liệu Python là gì?

Một tuple là một chuỗi các đối tượng Python bất biến. Bộ dữ liệu là trình tự, bộ dữ liệu không thể thay đổi và bộ dữ liệu sử dụng dấu ngoặc đơn. nó gán [RHS]phía bên tay phải của các giá trị vào [LHS] Phía bên trái. Nói cách khác, nó được gọi là giải nén một bộ giá trị thành một biến

Sự khác biệt giữa đóng gói và giải nén trong Python là gì?

Đóng gói - Như tên gọi của nó, nó gói gọn tất cả các đối số vào một biến duy nhất và lệnh gọi hàm này được đưa vào một bộ gọi là args. Chúng ta có thể sử dụng bất kỳ tên nào khác thay cho args. Giải nén - Giải nén là thuật ngữ dùng để chỉ một danh sách hoạt động hoặc bộ dữ liệu được gán cho một biến duy nhất

giải nén có nghĩa là gì với một ví dụ?

Giải nén một bộ có nghĩa là chia các phần tử của bộ thành các biến riêng lẻ . Ví dụ. x, y = [1, 2] Ngôn ngữ mã. Trăn [trăn]

Chủ Đề