當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。