Python sườn Itertool là một mô -đun cung cấp các chức năng khác nhau hoạt động trên các trình lặp để tạo ra các trình lặp phức tạp. Mô-đun này hoạt động như một công cụ nhanh, tiết kiệm bộ nhớ được sử dụng bởi chính chúng hoặc kết hợp để tạo thành đại số Iterator.
Trình lặp trong Python là một đối tượng có thể lặp lại như các loại dữ liệu trình tự như danh sách, tuple, str, v.v.sequence data types such as list, tuple, str and so on.
Lưu ý: Để biết thêm thông tin, hãy tham khảo Python Itertools For more information, refer to Python Itertools
Itertools.zip_longest[]
Công cụ lặp này thuộc danh mục chấm dứt vòng lặp. Nó in các giá trị của Iterables thay thế theo trình tự. Nếu một trong các vòng lặp được in đầy đủ, các giá trị còn lại được điền bởi các giá trị được gán cho tham số fillvalue
.
Syntax:
zip_longest[ iterable1, iterable2, fillval]
Ví dụ 1:
import
itertools
print
[
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']0
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']1
print
[
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']4
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']5
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']6
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']7
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']8
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']9
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]0
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]1
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]2
Output:
The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']
Ví dụ 2:
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]3
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]4
import
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6
Các
from itertools import zip_longest
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip_longest[l_1, l_2, fillvalue="_"]]
print[combinated] # [[1, 1], [2, 2], [3, '_']]
4[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]0
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]9
from itertools import zip_longest
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip_longest[l_1, l_2, fillvalue="_"]]
print[combinated] # [[1, 1], [2, 2], [3, '_']]
7The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']7
from itertools import zip_longest
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip_longest[l_1, l_2, fillvalue="_"]]
print[combinated] # [[1, 1], [2, 2], [3, '_']]
9The combined values of iterables is : ['G', 'e'] ['e', 'k'] ['s', 'f'] ['o', 'r'] ['G', 'e'] ['e', 'k'] ['s', '_']7
fillvalue
1from itertools import zip_longest
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip_longest[l_1, l_2, fillvalue="_"]]
print[combinated] # [[1, 1], [2, 2], [3, '_']]
3fillvalue
3
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]0
fillvalue
5fillvalue
6print
fillvalue
8
Output:
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]
Trong bài đăng đoạn trích tuần trước, chúng tôi đã nói về chức năng fillvalue
9 cực kỳ mạnh mẽ và cách chúng tôi có thể sử dụng nó để làm cho các vòng lặp của chúng tôi trở nên pythonic hơn. Tuần này chúng ta sẽ nói về người anh em ít nổi tiếng của fillvalue
9: [[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]
6.
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 sống trong mô -đun
import
3 mà chúng tôi đã nói về một thời gian ngắn trước đây. import
3 chứa tất cả các loại chức năng hữu ích xoay quanh các hoạt động lặp.Vậy
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 khác với
fillvalue
9 cũ như thế nào? Tại sao chúng ta nên quan tâm đến nó?Chà, khi chúng tôi sử dụng fillvalue
9, fillvalue
9 sẽ ngừng kết hợp các phép lặp của chúng tôi ngay khi một trong số chúng hết các yếu tố. Nếu các lần lặp khác dài hơn, chúng tôi chỉ cần ném những vật phẩm dư thừa đó đi. Hãy xem ví dụ này:
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip[l_1, l_2]]
print[combinated] # [[1, 1], [2, 2]]
Như bạn có thể thấy, chúng tôi chỉ mất
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip[l_1, l_2]]
print[combinated] # [[1, 1], [2, 2]]
4 trong itertools
0. Điều đó đôi khi có thể khá có vấn đề. Chúng tôi thường không muốn vứt dữ liệu như thế này.May mắn thay, chúng tôi có
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 ở đây để cứu chúng tôi.
Hãy nhìn vào ví dụ của chúng tôi ở trên một lần nữa. Lần này sử dụng
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6.
from itertools import zip_longest
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip_longest[l_1, l_2, fillvalue="_"]]
print[combinated] # [[1, 1], [2, 2], [3, '_']]
Có một vài điều cần lưu ý ở đây. Đối với một, chúng tôi có một bộ thứ ba trong đối tượng zip của chúng tôi, có nghĩa là danh sách dài hơn có thể cung cấp tất cả các giá trị của nó. Thứ hai, chúng tôi có đối số từ khóa này được gọi là fillvalue
.
Nếu chúng ta nhìn vào đầu ra print
cho phân đoạn mã nhỏ của chúng ta, chúng ta có thể nhận được một số dấu hiệu cho thấy điều này làm gì. Như chúng ta có thể thấy, nơi không có giá trị nào phù hợp với
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip[l_1, l_2]]
print[combinated] # [[1, 1], [2, 2]]
4, [[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 phù hợp với
l_1 = [1, 2, 3]
l_2 = [1, 2]
combinated = list[zip[l_1, l_2]]
print[combinated] # [[1, 1], [2, 2]]
4 với fillvalue
của chúng tôi.Về bản chất, bất cứ lúc nào
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 không có giá trị để khớp với một trong các yếu tố của chúng tôi, nó sẽ đặt
fillvalue
này ở đó để cắm các khoảng trống.Chúng tôi thực sự có thể sử dụng bất kỳ fillvalue
nào chúng tôi muốn ở đây: số, danh sách, từ điển, print
2. Bất cứ điều gì bạn có thể nghĩ đến. Điều này làm cho nó cực kỳ linh hoạt, và nó chắc chắn là một điều tốt để biết.
Trong trường hợp bạn quan tâm, chúng tôi có thể gọi
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 mà không cần đối số
fillvalue
, trong trường hợp đó sẽ mặc định sử dụng print
2 làm fillvalue
.Gói lên
Đó là nó cho bài viết đoạn trích này! Tôi hy vọng bạn đã học được điều gì đó mới và tôi chắc chắn bạn sẽ tìm thấy tất cả các cách tuyệt vời để sử dụng
[[1, 8], [2, 9], [3, 10], [4, None], [5, None], [6, None], [7, None]]6 trong mã của riêng bạn.
Như mọi khi, nếu bạn nghiêm túc về việc cải thiện con trăn của mình, tôi khuyên bạn nên xem khóa học Python hoàn chỉnh của chúng tôi! Nó có hơn 35 giờ vật liệu, cùng với các câu đố, bài tập và một số dự án lớn, vì vậy đó là một cách tuyệt vời để phát triển các kỹ năng trăn của bạn.
Bạn cũng nên nghĩ về việc đăng ký vào danh sách gửi thư của chúng tôi bên dưới, khi chúng tôi đăng mã phiếu giảm giá thường xuyên cho các khóa học của chúng tôi, đảm bảo rằng bạn luôn nhận được thỏa thuận tốt nhất.
Mã hóa hạnh phúc!