Đóng gói và giải nén thực sự cải thiện khả năng đọc mã của bạn. Hãy cùng xem xét chúng và học cách sử dụng dấu gạch dưới và dấu hoa thị với bộ dữ liệu.
Tuples là loại dữ liệu bất biến trong Python. Chúng nhanh hơn, tiết kiệm bộ nhớ và được bảo vệ chống lại các sửa đổi. Đóng gói và giải nén có thể được sử dụng cho bất kỳ đối tượng có thể lặp lại nào nhưng một trong những cách sử dụng nổi tiếng đã thuộc về các đối tượng tuple. Một trong những tác động lớn nhất của việc sử dụng đóng gói và giải nén, nó cải thiện khả năng đọc mã của bạn.
Đóng gói và giải nén Tuple là gì?
Hãy bắt đầu với các định nghĩa đơn giản.
Đóng gói Tuple đề cập đến việc gán nhiều giá trị thành một tuple. refers to assigning multiple values into a tuple.
Tuple giải nén đề cập đến việc gán một tuple thành nhiều biến. refers to assigning a tuple into multiple variables.
Bạn đã sử dụng đóng gói Tuple vì nó đơn giản như:tuple packing because it is as simple as:
>>> django_movie = ["Tarantino", 2012, 8.4, "Waltz & DiCaprio"]
Chúng tôi chỉ gán nhiều biến, đó là
>>> director, year, imdb_rating, stars = django_movie
0, >>> director, year, imdb_rating, stars = django_movie
1, >>> director, year, imdb_rating, stars = django_movie
2 và >>> director, year, imdb_rating, stars = django_movie
3, thành một tuple, đó là >>> director, year, imdb_rating, stars = django_movie
4.Hãy để cố gắng truy cập vào các yếu tố của
>>> director, year, imdb_rating, stars = django_movie
4:>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
Thay vì làm như vậy, có một cách pythonic hơn để xử lý nó: giải nén.tuple unpacking.
>>> director, year, imdb_rating, stars = django_movie
Như bạn thấy, việc giải nén Tuple hoàn toàn ngược lại với việc đóng gói tple để chúng ta gán từng phần tử của một tuple thành nhiều biến. Trên thực tế, việc giải nén tple có cùng ý nghĩa với nhiều gán một bộ trong python. tuple unpacking is completely the opposite of tuple packing so that we assign each element of a tuple into multiple variables. In fact, tuple unpacking has the same meaning with multiple assignment of a tuple in Python.
Tất nhiên, có một số quy tắc nhất định phải được tuân theo khi sử dụng việc giải nén tuple. Hãy nhớ rằng phải có cùng một số biến bằng chiều dài của tuple. Nếu số lượng các phần tử là nhiều hơn hoặc ít hơn, ValueError sẽ tăng.tuple unpacking. Keep in mind that there must be the same number of variables equal to the length of the tuple. If the number of elements is either more or less, ValueError raises.
>>> director, year, imdb_rating = django_movie
Output:
Traceback [most recent call last]:
File "", line 1, in
ValueError: too many values to unpack [expected 3]
Nó nói rằng chúng tôi đã cố gắng giải nén một tuple lớn hơn thành số lượng biến nhỏ hơn.
>>> director, scenarist, year, imdb_rating, stars = django_movie
Output:
Traceback [most recent call last]:
File "", line 1, in
ValueError: not enough values to unpack [expected 5, got 4]
Lỗi cho chúng tôi biết rằng chúng tôi đã cố gắng giải nén một phần nhỏ hơn thành số lượng biến lớn hơn.
Các mặt hàng không mong muốn với dấu gạch dưới ‘_
Một dấu gạch dưới
>>> director, year, imdb_rating, stars = django_movie
6 giữ các biến mà bạn không quan tâm đến các giá trị của chúng. Nói cách khác, không quan trọng họ là gì.Giả sử rằng bạn đã thắng sử dụng
>>> director, year, imdb_rating, stars = django_movie
7 trong dự án của bạn. Trong trường hợp này, bạn có thể sử dụng >>> director, year, imdb_rating, stars = django_movie
6 để cho thấy rằng bạn không quan tâm đến giá trị của biến >>> director, year, imdb_rating, stars = django_movie
7.>>> director, year, _, stars = django_movie
Hãy nhớ rằng
>>> director, year, imdb_rating, stars = django_movie
6 là một tên biến hợp lệ, không phải là một từ khóa đặc biệt trong Python để nó vẫn giữ giá trị của >>> director, year, imdb_rating, stars = django_movie
7.>>> print[_]
Output:
8.4
Điều gì sẽ xảy ra nếu bạn muốn sử dụng chỉ giữ
>>> director, year, imdb_rating = django_movie
2 và >>> director, year, imdb_rating = django_movie
3? Sau đó, bạn sẽ bỏ qua >>> director, year, imdb_rating = django_movie
4 và >>> director, year, imdb_rating, stars = django_movie
7 bằng cách sử dụng >>> director, year, imdb_rating, stars = django_movie
6 cho mỗi người trong số họ.>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
0Bạn có thể chỉ định tất cả các giá trị bạn muốn bỏ qua với
>>> director, year, imdb_rating, stars = django_movie
6.Nhưng điều này không được tốt. Đúng?
Mở rộng việc giải nén với Asterisks ‘*
Toán tử
>>> director, year, imdb_rating = django_movie
8 được sử dụng để mở rộng giải nén.>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
1Chúng ta có thể in các giá trị của họ để xem những gì đã xảy ra.
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
2Output:
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
3Hãy cùng xem xét các ví dụ tiếp theo.
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
4Output:
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
5Lưu ý rằng khi chúng tôi sử dụng toán tử
>>> director, year, imdb_rating = django_movie
8, danh sách trả về, không phải là một tuple.>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
6Output:
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
7Một ví dụ cuối cùng:
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
8Output:
>>> director = django_movie[0]
>>> year = django_movie[1]
>>> imdb_rating = django_movie[2]
>>> stars = django_movie[3]
9Tôi hy vọng bạn thấy bài viết này hữu ích.
Một bài viết hữu ích khác mà bạn có thể quan tâm: