Giải nén một tupleKhi chúng ta tạo một tuple, chúng ta thường gán các giá trị cho nó. Điều này được gọi là "Đóng gói" một tuple: Show Nhưng, trong Python, chúng tôi cũng được phép trích xuất các giá trị trở lại thành các biến. Điều này được gọi là "Giải nén": Thí dụGiải nén một tuple: trái cây = ("táo", "chuối", "anh đào") (xanh, vàng, đỏ) = trái cây in (màu xanh lá cây) in (màu vàng) in (màu đỏ) Hãy tự mình thử » LƯU Ý: Số lượng biến phải khớp với số lượng giá trị trong tuple, nếu không, bạn phải sử dụng dấu hoa thị để thu thập các giá trị còn lại làm danh sách. The number of variables must match the number of values in the tuple, if not, you must use an asterisk to collect the remaining values as a list. Sử dụng dấu hoa thị*Nếu số lượng biến nhỏ hơn số lượng giá trị, bạn có thể thêm Thí dụGiải nén một tuple: trái cây = ("táo", "chuối", "anh đào") (xanh, vàng, đỏ) = trái cây in (màu xanh lá cây) in (màu vàng) in (màu đỏ) Hãy tự mình thử » LƯU Ý: Số lượng biến phải khớp với số lượng giá trị trong tuple, nếu không, bạn phải sử dụng dấu hoa thị để thu thập các giá trị còn lại làm danh sách. Thí dụGiải nén một tuple: trái cây = ("táo", "chuối", "anh đào") (xanh, vàng, đỏ) = trái cây in (màu xanh lá cây) in (màu vàng) in (màu đỏ) Hãy tự mình thử » LƯU Ý: Số lượng biến phải khớp với số lượng giá trị trong tuple, nếu không, bạn phải sử dụng dấu hoa thị để thu thập các giá trị còn lại làm danh sách. Sử dụng dấu hoa thị* Python3Nếu số lượng biến nhỏ hơn số lượng giá trị, bạn có thể thêm (1, 2, 3, 4)0 (1, 2, 3, 4)1 (1, 2, 3, 4)2 Gán phần còn lại của các giá trị làm danh sách gọi là "Red": Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given4 trái cây = ("táo", "chuối", "anh đào", "dâu", "mâm xôi") TypeError: fun() takes exactly 4 arguments (1 given) (màu xanh lá cây, vàng, *đỏ) = trái cây Python3Nếu số lượng biến nhỏ hơn số lượng giá trị, bạn có thể thêm (1, 2, 3, 4)0 (1, 2, 3, 4)1 (1, 2, 3, 4)2 Gán phần còn lại của các giá trị làm danh sách gọi là "Red": (Geeksforgeeks, awesome, world!)1 * (Geeksforgeeks, awesome, world!)3 trái cây = ("táo", "chuối", "anh đào", "dâu", "mâm xôi") (1, 2, 3, 4) (màu xanh lá cây, vàng, *đỏ) = trái cây Python3Nếu dấu hoa thị được thêm vào một tên biến khác so với phần cuối, Python sẽ gán các giá trị cho biến cho đến khi số lượng giá trị còn lại khớp với số lượng biến còn lại. Thêm danh sách các giá trị biến "Tropic": trái cây = ("táo", "xoài", "đu đủ", "dứa", "anh đào") <class 'dict'> name = geeks ID = 101 language = Python4 * <class 'dict'> name = geeks ID = 101 language = Python6 Output: Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given (màu xanh lá cây, *nhiệt đới, đỏ) = trái cây Python3<class 'dict'> name = geeks ID = 101 language = Python7 <class 'dict'> name = geeks ID = 101 language = Python8 <class 'dict'> name = geeks ID = 101 language = Python9 * 0Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given0 (1, 2, 3, 4)7 * 3* 4in (màu xanh lá cây) in (nhiệt đới) in (màu đỏ) Chúng tôi sử dụng hai toán tử * (cho các bộ dữ liệu) và ** (cho từ điển). & Nbsp; <class 'dict'> name = geeks ID = 101 language = Python8 <class 'dict'> name = geeks ID = 101 language = Python9 * 0* fun(a, b, c, d): 3(1, 2, 3, 4)5 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given0 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given2 (1, 2, 3, 4)7 def 0Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given3 Bối cảnh & nbsp; xem xét một tình huống mà chúng ta có một chức năng nhận được bốn đối số. Chúng tôi muốn thực hiện một cuộc gọi đến chức năng này và chúng tôi có một danh sách kích thước 4 với chúng tôi có tất cả các đối số cho chức năng. Nếu chúng ta chỉ cần chuyển một danh sách cho chức năng, cuộc gọi không hoạt động. & Nbsp; & nbsp; Python3
(1, 2, 3, 4)3 (1, 2, 3, 4)4 (1, 2, 3, 4)5 (1, 2, 3, 4)6 (1, 2, 3, 4)7 (1, 2, 3, 4)8 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given0 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given223 Đầu ra: & nbsp; (1, 2, 3, 4)1 (1, 2, 3, 4)10 (1, 2, 3, 4)23 (1, 2, 3, 4)7 (1, 2, 3, 4)25 (1, 2, 3, 4)20 Output: 15 30 & nbsp; & nbsp; giải nén & nbsp; chúng ta có thể sử dụng * để giải nén danh sách để tất cả các yếu tố của nó có thể được truyền dưới dạng các tham số khác nhau. & nbsp; Chúng ta cần ghi nhớ rằng không. Các đối số phải giống như độ dài của danh sách mà chúng tôi đang giải nén cho các đối số. Python3(Geeksforgeeks, awesome, world!)4 (1, 2, 3, 4)4 (1, 2, 3, 4)5 (Geeksforgeeks, awesome, world!)7 (1, 2, 3, 4)7 (1, 2, 3, 4)6 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given222 (1, 2, 3, 4)0 (1, 2, 3, 4)1 (1, 2, 3, 4)31
2 4 106 ____10 2 4 108 2 4 109 <class 'dict'> name = geeks ID = 101 language = Python0 <class 'dict'> name = geeks ID = 101 language = Python1 <class 'dict'> name = geeks ID = 101 language = Python0 <class 'dict'> name = geeks ID = 101 language = Python3 Một ví dụ khác, hãy xem xét hàm Range () tích hợp () mong đợi các đối số bắt đầu và dừng riêng biệt. Nếu chúng không có sẵn một cách riêng biệt, hãy viết cuộc gọi chức năng với trình điều hành *để giải nén các đối số ra khỏi danh sách hoặc tuple: & nbsp; (1, 2, 3, 4)5 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given0 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given2222 (1, 2, 3, 4)0 (1, 2, 3, 4)54 * <class 'dict'> name = geeks ID = 101 language = Python6 (1, 2, 3, 4)33 (1, 2, 3, 4)58 (1, 2, 3, 4)7 (1, 2, 3, 4)60 (1, 2, 3, 4)7 (1, 2, 3, 4)62 (1, 2, 3, 4)63 Output: (Geeksforgeeks, awesome, world!) ** được sử dụng cho từ điển & nbsp; & nbsp; Python3
(1, 2, 3, 4)65 (1, 2, 3, 4)0 (1, 2, 3, 4)1 (1, 2, 3, 4)31 (1, 2, 3, 4)69 (1, 2, 3, 4)4 (1, 2, 3, 4)71 (1, 2, 3, 4)72 (1, 2, 3, 4)73 (1, 2, 3, 4)8 (1, 2, 3, 4)7 (1, 2, 3, 4)76 (1, 2, 3, 4)73 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given222 (Geeksforgeeks, awesome, world!)1 * * (1, 2, 3, 4)87 Output: 2 4 10 Ở đây ** Giải nén từ điển được sử dụng với nó và chuyển các mục trong từ điển làm đối số từ khóa cho hàm. Vì vậy, viết trò vui (1, ** d), tương đương với việc viết trò vui (1, b = 4, c = 10). & NBSP; Python3
(Geeksforgeeks, awesome, world!)1 * * (1, 2, 3, 4)92 (1, 2, 3, 4)0 (1, 2, 3, 4)1 * 0(1, 2, 3, 4)96 (1, 2, 3, 4)97 ____10 (1, 2, 3, 4)99 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given00 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given01 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given02 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given03 (1, 2, 3, 4)1 * 0Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given06 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given07 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given08 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given09 (1, 2, 3, 4)4 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given11 (1, 2, 3, 4)7 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given13 (1, 2, 3, 4)4 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given15 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given16 (1, 2, 3, 4)4 Traceback (most recent call last): File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module> func(*args) TypeError: func() takes 3 positional arguments but 4 were given18 (1, 2, 3, 4)63 Đầu ra <class 'dict'> name = geeks ID = 101 language = Python Ứng dụng và điểm quan trọng & nbsp;
Tham khảo: & nbsp; http: //hangar.runway7.net/python/packing-unpacking-argumentsthis Bài viết được đóng góp bởi Shwetanshu Rohatgi. Nếu bạn thích GeekSforGeeks và muốn đóng góp, bạn cũng có thể viết một bài viết bằng Write.GeekSforGeek.org hoặc gửi bài viết của bạn. Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác. Xin vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên & NBSP; Làm cách nào để giải nén một chuỗi trong Python?Phương thức: Sử dụng định dạng () + * Trình điều khiển + Giá trị () Trình điều khiển * được sử dụng để giải nén và gán. Các giá trị được trích xuất bằng các giá trị ().Using format() + * operator + values() The * operator is used to unpack and assign. The values are extracted using values(). Nhà điều hành giải nén trong Python là gì?Cả * và ** là những người vận hành thực hiện đóng gói và giải nén trong Python. Toán tử * (khá thường xuyên được liên kết với ARG) có thể được sử dụng với bất kỳ điều gì có thể lặp lại (chẳng hạn như một tuple, danh sách và chuỗi), trong khi toán tử **, (thường được liên kết với kwargs) chỉ có thể được sử dụng trên từ điển.* and ** are the operators that perform packing and unpacking in Python. The * operator (quite often associated with args) can be used with any iterable (such as a tuple, list and strings), whereas the ** operator, (quite often associated with kwargs) can only be used on dictionaries. Làm cách nào để giải nén một tham số trong Python?Khi các đối số ở dạng từ điển, chúng ta có thể giải nén chúng trong cuộc gọi chức năng bằng toán tử **. Double Asterisk ** được sử dụng để giải nén từ điển và truyền nó làm đối số từ khóa trong cuộc gọi chức năng.using the ** operator. A double asterisk ** is used for unpacking a dictionary and passing it as keyword arguments during the function call. |