สมมติว่าเรามีสองลิสต์ l1 และ l2 เราต้องหาผลคูณการ์ทีเซียน (Cartesian Product) ของทั้งสองลิสต์ หากลิสต์คือ (a, b) และ (c, d) ผลคูณจะเป็น {(a,c), (a,d), (b,c), (b,d)} ใช้ itertools.product() แล้วแปลงเป็น list
ตัวอย่าง l1 = [1,5,6] l2 = [1,2,9] ผลลัพธ์ = [(1,1), (1,2), (1,9), (5,1), (5,2), (5,9), (6,1), (6,2), (6,9)]
ขั้นตอนการแก้ปัญหา
- x := product(l1, l2) ได้ iterator
- ret := list(x) แปลงเป็นลิสต์
- คืนค่า ret
ตัวอย่างโค้ด
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))
อินพุต
[1,5,6], [1,2,9]
เอาต์พุต
[(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]