Skip to main content
 首页 » 编程设计

python之如何使用 python 迭代器生成多个变量的笛卡尔积

2025年05月04日14sharpest

亲爱的大家, 给定一个具有三个值的变量,我试图生成所有可能的组合,例如这些变量的三元组。

虽然这段代码可以解决问题,

site_range=[0,1,2] 
states = [(s0,s1,s2) for s0 in site_range for s1 in site_range for s2 in site_range] 

它有点,嗯,笨拙,而且如果我尝试对三个以上变量的组合做同样的事情只会变得更糟

因此,我的 Python 101 问题:

  1. 如何使用迭代器重写上面的代码?我的意思是,是否可以有一个迭代器来产生上述“状态”的元素?

  2. 是否可以将其扩展为不仅生成三胞胎,还生成 4 胞胎、5 胞胎等等?

请您参考如下方法:

import itertools 
site_range=[0,1,2] 
[x for x in itertools.product(site_range, repeat=len(site_range))]