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

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


สมมติว่าเรามีข้อมูลสองรายการ l1 และ l2 เราต้องหาผลคูณคาร์ทีเซียนของสองรายการนี้ ดังที่เรารู้ว่าสองรายการเป็นอย่างไร (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 ของผลิตภัณฑ์ Cartesian

  • ret :=list(x) เพื่อแปลง x iterator เป็น list

  • รีเทิร์น

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

จาก itertools นำเข้า productdef แก้ปัญหา (l1, l2):รายการส่งคืน (ผลิตภัณฑ์ (l1, l2))l1 =[1,5,6]l2 =[1,2,9]พิมพ์ (แก้ไข (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)]