好用的 itertools

2018-06-23  本文已影响0人  vckah

itertools 里面封装了好多有用的函数,让我们一起来看一看。

import itertools
for i in itertools.product('ABCD', repeat = 2):
    print (''.join(i),end=' '

*********** 结果分割线 **************
AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
import itertools
for i in itertools.permutations('ABCD', 2):
    print (''.join(i),end=' ')

*********** 结果分割线 **************
AB AC AD BA BC BD CA CB CD DA DB DC
import itertools
for i in itertools.combinations('ABCD', 3):
    print (''.join(i), end=' ')

*********** 结果分割线 **************
ABC ABD ACD BCD

有这样一道题:

Input: k = 3, n = 9
Output: [[1,2,6], [1,3,5], [2,3,4]]

找到所有和为 9 的列表,满足长度为 3,且列表中数字不大于 9。可以采用 combinations

# 一个列表解析式搞定
 [c for c in combinations(range(1,10), 3) if sum(c) == 10]
import itertools
for i in itertools.combinations_with_replacement('ABCD', 3):
    print (''.join(i),end=' ')

*********** 结果分割线 **************
AAA AAB AAC AAD ABB ABC ABD ACC ACD ADD BBB BBC BBD BCC BCD BDD CCC CCD CDD
上一篇 下一篇

猜你喜欢

热点阅读