首页 > 编程语言 > 详细

python 坐标遍历 生成笛卡尔积矩阵

时间:2021-07-19 14:41:02      阅读:12      评论:0      收藏:0      [点我收藏+]

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

(完)

python 坐标遍历 生成笛卡尔积矩阵

原文:https://www.cnblogs.com/harrymore/p/15029596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!