Python – Itertools.Combinations_with_replacement()
PythonPython提供的用于创建迭代器的模块,它有助于高效循环、时间和空间效率。 Itertools 帮助我们轻松高效地解决复杂问题。通常有 3 种类型的迭代器。
该模块提供的不同类型的迭代器是:
- 组合生成器
- 无限迭代器
- 终止迭代器
注意:更多信息请参考Python Itertools
Itertools.Combinations_with_replacement()
Itertools.Combinations_with_replacement() 位于 itertools 的 Combinatoric Generator 子类型中。组合生成器是指那些处理迭代器可能的不同排列的迭代器。这里的元素是用那里的索引值而不是用那里的值或类型来引用的。
如何使用 Itertools.Combinations_with_replacement()函数?
正如名称所理解的那样,“组合”是指迭代器的所有可能的子集或排列,而“combinations_with_replacement”一词表示允许元素在子集中重复的所有可能的排列或子集。此函数将“r”作为输入,此处“r”表示可能的不同组合的大小。所有带有重复元素的组合都会被发出,并且长度为“r”,“r”是这里的必要参数。
示例 1:-
Python3
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)
Python3
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)))
输出:-
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:-
Python3
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)]