Itertool是Python提供的一个模块,用于创建有效循环的迭代器。它还提供了与迭代器一起使用的各种函数,以产生复杂的迭代器,并帮助我们轻松,高效地解决时间和内存方面的问题。 Itertools模块为我们提供了多种方法来操纵遍历的序列。
此模块提供的不同类型的迭代器为:
注意:有关更多信息,请参阅Python Itertools。
Itertools.permutation()
Itertools.permutation()
函数属于组合发电机。用于简化组合结构(例如排列,组合和笛卡尔积)的递归生成器称为组合迭代器。
如单词“Permutation”所理解的,它指的是可以对集合或字符串进行排序或排列的所有可能的组合。同样在这里itertool.permutations()
方法为我们提供了迭代器可能存在的所有可能的安排,并且所有元素均根据该位置而不是根据其值或类别被假定为唯一。所有这些排列都是按字典顺序提供的。函数itertool.permutations()
接受一个迭代器和“ r”(需要排列的长度)作为输入,并假设“ r”作为迭代器的默认长度(如果未提及),并分别返回所有可能的长度为“ r”的排列。
用法:
Permutations(iterator, r)
示例1:
from itertools import permutations
a = "GeEK"
# no length entered so default length
# taken as 4(the length of string GeEK)
p = permutations(a)
# Print the obtained permutations
for j in list(p):
print(j)
输出:-
('G', 'e', 'E', 'K') ('G', 'e', 'K', 'E') ('G', 'E', 'e', 'K') ('G', 'E', 'K', 'e') ('G', 'K', 'e', 'E') ('G', 'K', 'E', 'e') ('e', 'G', 'E', 'K') ('e', 'G', 'K', 'E') ('e', 'E', 'G', 'K') ('e', 'E', 'K', 'G') ('e', 'K', 'G', 'E') ('e', 'K', 'E', 'G') ('E', 'G', 'e', 'K') ('E', 'G', 'K', 'e') ('E', 'e', 'G', 'K') ('E', 'e', 'K', 'G') ('E', 'K', 'G', 'e') ('E', 'K', 'e', 'G') ('K', 'G', 'e', 'E') ('K', 'G', 'E', 'e') ('K', 'e', 'G', 'E') ('K', 'e', 'E', 'G') ('K', 'E', 'G', 'e') ('K', 'E', 'e', 'G')
示例2:
from itertools import permutations
print ("All the permutations of the given list is:")
print (list(permutations([1, 'geeks'], 2)))
print()
print ("All the permutations of the given string is:")
print (list(permutations('AB')))
print()
print ("All the permutations of the given container is:")
print(list(permutations(range(3), 2)))
输出:-
All the permutations of the given list is: [(1, 'geeks'), ('geeks', 1)] All the permutations of the given string is: [('A', 'B'), ('B', 'A')] All the permutations of the given container is: [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
注:本文由纯净天空筛选整理自sahivam4u大神的英文原创作品 Python – Itertools.Permutations()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。