美文网首页
好用的 itertools

好用的 itertools

作者: vckah | 来源:发表于2018-06-23 11:03 被阅读0次

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

  • product(*iterables, repeat=1) --> product object
    进行笛卡尔积
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
  • permutations(iterable[, r]) --> permutations object
    排列问题
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
  • combinations(iterable, r) --> combinations object
    组合问题
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]
  • combinations_with_replacement(iterable, r)
    --> combinations_with_replacement object
    包含自身重复的组合
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

相关文章

网友评论

      本文标题:好用的 itertools

      本文链接:https://www.haomeiwen.com/subject/kvjryftx.html