itertools模块combinations(iterable, r)方法可以创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序。
例1:
from itertools import combinations li = [1,2,3,4] newIter = combinations(li,2) print(newIter) newList = list(newIter) print(newList)
例2、实现一位数组的所有排列组合:
li = [1,2,3,4] li2 = [] for i in range(1,len(li)+1): newLi = list(combinations(li,i)) li2.append(newLi) print(li2)
例3:利用chain.from_iterable方法将多个迭代器连接起来
from itertools import combinations,chain li = [1,2,3,4] print(list(chain.from_iterable(combinations(li,r) for r in range(len(li)+1))))