Python的前辈们封装了非常多的特别简单又高效的方法
只不过不常用, 也不知道而已
今天就介绍下itertools的product函数
list_a = [1, 2, 3]list_b = [",", ".", "?"]list_c = ["a", "b", "c"]
正常情况下, 如果要找出上面几个列表共有多少种组合, 我们要以下这样
for a in list_a: for b in list_b: for c in list_c: print(f"{a}{b}{c}")
结果是:
1,a1,b1,c...
如果只有三个循环的话, 这样写也没什么, 如果20个呢, 上百个呢, 结果可想而知, 一个长达几百行的循环
接下来, 就是我们的神器出场了
上面那个例子, 摇身一变
import itertoolsfor a,b,c in itertools.product(list_a, list_b, list_c): print(f"{a}{b}{c}")
就成了这样, 结果跟上面的几行一样效果, 如下
1,a1,b1,c...
如果是循环相同的迭代器, 还可以这样写
for a,b,c in itertools.product(list_a, repeat=3): print(f"{a}{b}{c}")
结果如下:
111112113...
注意: itertools.product(),
这里其实得到的是一个元组, 例(1,1,1)(1,1,2)....
好了, 今天这个神奇的模块就到这里了, 你get到了嘛?