Python小技之组合不同列表, 获取所有结果

Python的前辈们封装了非常多的特别简单又高效的方法

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到了嘛?

留言与评论(共有 0 条评论)
   
验证码: