สมมติว่าเรามีข้อมูลสองรายการ 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]