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