python 座標遍歷 生成笛卡爾積矩陣
阿新 • • 發佈:2021-07-19
1. 主要場景
- 生成兩個列表的組合。
- 生成座標
2. 函式
用的是python itertools庫的product函式,它返回一個生成器,生成元組。
這個函式主要有兩種用法,一種用法是對兩個可遍歷物件進行組合,如兩個列表:
from itertools import product A = [1,2,3] B = ["a", "b", "c"] for item in product(A, B): print(item)
輸出:
(1, 'a') (1, 'b') (1, 'c') (2, 'a') (2, 'b') (2, 'c') (3, 'a') (3, 'b') (3, 'c')
這種情況等價於:
((x,y) for x in A for y in B)
另外一種用法是對本身進行生成,如我有一個邊長為4*4的矩形,想生成所有座標:
from itertools import product for item in product(range(4), repeat=2): print(item)
輸出:
(0, 0) (0, 1) (0, 2) (0, 3) (1, 0) (1, 1) (1, 2) (1, 3) (2, 0) (2, 1) (2, 2) (2, 3) (3, 0) (3, 1) (3, 2) (3, 3)
其中repeat引數指示你生成的目標的維度,以上面為例,如果生成的是3維的座標,則指定repeat=3即可。
3. 參考
https://docs.python.org/3/library/itertools.html
(完)
本文版權歸作者(https://www.cnblogs.com/harrymore/)和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結,如有問題, 可郵件([email protected])諮詢.