-
可迭代对象进行排列组合
迭代遍历可迭代对象所有可能的排列或组合
运用itertools模块的permutations()
和combinations()
函数
#组合
>>> from itertools import permutations
>>> data=[1,2,3]
>>> for p in permutations(data):
print(p)
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
#>>> 指定返回结果中每种排列的长度(元素个数)
>>> for p in permutations(data,2):
print(p)
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
>>>
组合
>>> from itertools import combinations
>>> data=[1,2,3]
>>> for c in combinations(data, 3):
print(c)
(1, 2, 3)
>>>
>>> for c in combinations(data,2):
print(c)
(1, 2)
(1, 3)
(2, 3)
>>>
-
不同集合上元素的迭代
你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。
运用itertools模块chain()
函数,它接受一个可迭代对象列表作为
输入,可迭代对象类型无要求,并返回一个迭代器
>>> from itertools import chain
>>> a=[1,2,3,4]
>>> b=set('x','y','z')
>>> for i in chain(a,b):
print(i)