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