itertools
Posted welcome_home
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itertools相关的知识,希望对你有一定的参考价值。
0. Python中引入itertools
1. 笛卡尔积:
product(iter1, iter2,...,iterN,[repeat=i])
1 from itertools import product 2 3 #笛卡尔积 4 #3种常见的iter类型 5 for x in product(\'10\',repeat=3): 6 print(x) 7 for x in product([1,0],repeat=3): 8 print(x) 9 for x in product((0,1),repeat=3): 10 print(x)
结果
1 (\'1\', \'1\', \'1\') 2 (\'1\', \'1\', \'0\') 3 (\'1\', \'0\', \'1\') 4 (\'1\', \'0\', \'0\') 5 (\'0\', \'1\', \'1\') 6 (\'0\', \'1\', \'0\') 7 (\'0\', \'0\', \'1\') 8 (\'0\', \'0\', \'0\') 9 10 (1, 1, 1) 11 (1, 1, 0) 12 (1, 0, 1) 13 (1, 0, 0) 14 (0, 1, 1) 15 (0, 1, 0) 16 (0, 0, 1) 17 (0, 0, 0) 18 19 (0, 0, 0) 20 (0, 0, 1) 21 (0, 1, 0) 22 (0, 1, 1) 23 (1, 0, 0) 24 (1, 0, 1) 25 (1, 1, 0) 26 (1, 1, 1)
复杂示例
lucky+=[int(\'\'.join([str(y) for y in x])) for x in list(product([4,7],repeat=i))]
2.全排列
permutations(iterable,[,r])
1 from itertools import permutations 2 3 for x in permutations(\'ABC\'): 4 print(x)
结果
(\'A\', \'B\', \'C\') (\'A\', \'C\', \'B\') (\'B\', \'A\', \'C\') (\'B\', \'C\', \'A\') (\'C\', \'A\', \'B\') (\'C\', \'B\', \'A\')
3. 组合
combinations(iterable, r)
1 from itertools import combinations 2 3 for x in combinations(\'ABCD\',2): 4 print(x) 5 for x in combinations([1,2,3,4],2): 6 print(x)
结果
(\'A\', \'B\') (\'A\', \'C\') (\'B\', \'C\') (1, 2) (1, 3) (2, 3)
未完待续...
以上是关于itertools的主要内容,如果未能解决你的问题,请参考以下文章
这段代码很Pythonic | 相见恨晚的 itertools 库
这段代码很Pythonic | 相见恨晚的 itertools 库
这段代码很Pythonic | 相见恨晚的 itertools 库