📜  Python – Itertools Combinations()函数

📅  最后修改于: 2022-05-13 01:54:57.633000             🧑  作者: Mango

Python – Itertools Combinations()函数

Itertool 是Python的一个模块,用于创建迭代器,这有助于我们在空间和时间方面进行有效的循环。该模块借助 itertools 的不同子功能帮助我们轻松解决复杂问题。不同的子功能分为3个子组,它们是:-

  • 无限迭代器
  • 终止于最短输入序列的迭代器
  • 组合生成器

注意:更多信息请参考Python Itertools

Itertools.combinations()

Itertools.combinations()属于第三个子类别,称为“组合生成器”。组合生成器是那些用于简化组合结构的迭代器,例如排列、组合和笛卡尔积

正如名称组合所理解的那样,是指迭代器中使用的数字或字母的序列或集合。类似地, itertools.combinations()为我们提供了所有可能的元组,一个序列或一组数字或字母在迭代器中使用,并且基于所有元素的不同位置,元素被假定为唯一的。所有这些组合都按字典顺序发出。此函数将“r”作为输入,此处“r”表示可能的不同组合的大小。发出的所有组合的长度都是“r”,“r”是这里的必要参数。

句法:

combinations(iterator, r)

示例 1:-

# Combinations Of string "GeEKS" OF SIZE 3.
  
  
from itertools import combinations
  
letters ="GeEKS"
  
# size of combination is set to 3
a = combinations(letters, 3) 
y = [' '.join(i) for i in a]
  
print(y)

输出:-

['G e E', 'G e K', 'G e S', 'G E K', 'G E S', 'G K S', 'e E K', 'e E S', 'e K S', 'E K S']

示例 2:-

from itertools import combinations
  
      
print ("All the combination of list in sorted order(without replacement) is:")   
print(list(combinations(['A', 2], 2)))  
print()  
      
print ("All the combination of string in sorted order(without replacement) is:")  
print(list(combinations('AB', 2)))  
print()  
      
print ("All the combination of list in sorted order(without replacement) is:")  
print(list(combinations(range(2), 1))) 

输出 :-

All the combination of list in sorted order(without replacement) is:
[('A', 2)]

All the combination of string in sorted order(without replacement) is:
[('A', 'B')]

All the combination of list in sorted order(without replacement) is:
[(0,), (1,)]