当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Itertools.Permutations()用法及代码示例


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。