Giả sử chúng ta có hai danh sách dữ liệu l1 và l2. Chúng ta phải tìm tích Descartes của hai danh sách này. Như chúng ta biết nếu hai danh sách giống như (a, b) và (c, d) thì tích Descartes sẽ là {(a, c), (a, d), (b, c), (b, d)} . Để làm điều này, chúng tôi sẽ sử dụng thư viện itertools và sử dụng hàm product () có trong thư viện này. Giá trị trả về của hàm này là một biến lặp. Chúng ta phải chuyển nó thành danh sách bằng cách chuyển đầu ra vào hàm tạo list ().
Vì vậy, nếu đầu vào giống như l1 =[1,5,6] l2 =[1,2,9], thì đầu ra sẽ là [(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
x:=product (l1, l2) để lấy biến lặp của các sản phẩm Descartes
-
ret:=list (x) để chuyển đổi x vòng lặp thành danh sách
-
trả lại ret
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
from itertools import product def solve(l1, l2): return list(product(l1, l2)) l1 = [1,5,6] l2 = [1,2,9] print(solve(l1, l2))
Đầu vào
[1,5,6], [1,2,9]
Đầu ra
[(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]