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


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


Python中的Itertools是指Python中提供的用于创建迭代器的模块,该模块还有助于有效的循环,时间和空间效率。 Itertools帮助我们轻松高效地解决复杂问题。通常有3种类型的迭代器。

此模块提供的不同类型的迭代器为:

注意:有关更多信息,请参阅Python Itertools。

Itertools.Combinations_with_replacement()

Itertools.Combinations_with_replacement()位于itertools的Combinatoric Generator子类型中。组合生成器是指那些处理迭代器可能的不同布置的迭代器。在这里,元素用那里的索引值而不是那里的值或类型来引用。

如何使用Itertools.Combinations_with_replacement()函数?



如名称“combinations”所理解的,它表示迭代器的所有可能子集或布置,而单词“combinations_with_replacement”表示允许元素在子集中重复的所有可能的布置或子集。此函数将‘r’作为输入,此处‘r’表示可能的不同组合的大小。发出具有元素重复的所有组合,并且长度为‘r’,并且‘r’在此处是必需的参数。

范例1:-

from itertools import combinations_with_replacement 
  
  
a ="GEeks"
  
l = list(combinations_with_replacement(a, 2)) 
print("COMBINATIONS WITH REPLACEMENTS OF STRING GEeks OF SIZE 2.") 
print(l)

输出:-

COMBINATIONS WITH REPLACEMENTS OF STRING GEeks OF SIZE 2.
[(‘G’, ‘G’), (‘G’, ‘E’), (‘G’, ‘e’), (‘G’, ‘k’), (‘G’, ‘s’), (‘E’, ‘E’), (‘E’, ‘e’), (‘E’, ‘k’), (‘E’, ‘s’), (‘e’, ‘e’), (‘e’, ‘k’), (‘e’, ‘s’), (‘k’, ‘k’), (‘k’, ‘s’), (‘s’, ‘s’)]

示例2:

from itertools import combinations_with_replacement  
    
        
print ("All the combination of List in sorted order(with replacement) is:")    
print(list(combinations_with_replacement('D.P.S.', 2)))    
print()    
  
  
print ("All the combination of list in sorted order(with replacement) is:")    
print(list(combinations_with_replacement(range(1, 5), 2))) 

输出:-

All the combination of List in sorted order(without replacement) is:
[(‘D’, ‘D’), (‘D’, ‘.’), (‘D’, ‘P’), (‘D’, ‘.’), (‘D’, ‘S’), (‘D’, ‘.’), (‘.’, ‘.’), (‘.’, ‘P’), (‘.’, ‘.’), (‘.’, ‘S’), (‘.’, ‘.’), (‘P’, ‘P’), (‘P’, ‘.’), (‘P’, ‘S’), (‘P’, ‘.’), (‘.’, ‘.’), (‘.’, ‘S’), (‘.’, ‘.’), (‘S’, ‘S’), (‘S’, ‘.’), (‘.’, ‘.’)]

All the combination of list in sorted order(with replacement) is:
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)]





注:本文由纯净天空筛选整理自sahivam4u大神的英文原创作品 Python – Itertools.Combinations_with_replacement()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。