Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาผลคูณการ์ทีเซียนของสองลิสต์ใน Python

สมมติว่าเรามีสองลิสต์ 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)]