Python – Itertools.Permutations()
Itertool 是Python提供的一个模块,用于创建迭代器以实现高效循环。它还提供了与迭代器一起工作的各种特性或功能,以生成复杂的迭代器,并帮助我们在时间和内存方面轻松有效地解决问题。 Itertools 模块为我们提供了各种方法来操作我们正在遍历的序列。
该模块提供的不同类型的迭代器是:
- 无限迭代器
- 终止于最短输入序列的迭代器
- 组合迭代器
注意:更多信息请参考Python Itertools
Itertools.permutation()
Itertools.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)]