Python–Itertools 组合()函数

原文:https://www . geesforgeks . org/python-ITER tools-combinations-function/

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,)]