📅  最后修改于: 2023-12-03 15:04:03.414000             🧑  作者: Mango
在计算机科学中,组合是一种用于选择对象的技术。组合问题涉及从给定的集合中选择一些元素的问题,但是顺序不重要。
在 Python 中,我们可以使用 itertools 模块来生成组合。
我们可以使用 combinations() 函数从序列生成组合。它接受两个参数 - 可迭代对象和组合长度。
import itertools
def get_combinations(iterable, r):
return list(itertools.combinations(iterable, r))
print(get_combinations("abc", 2)) # [('a', 'b'), ('a', 'c'), ('b', 'c')]
在上面的示例中,我们从字符串 "abc" 中生成长度为 2 的组合。
我们可以使用 combinations_with_replacement() 函数从序列生成重复组合。它接受两个参数 - 可迭代对象和组合长度。
import itertools
def get_combinations_with_replacement(iterable, r):
return list(itertools.combinations_with_replacement(iterable, r))
print(get_combinations_with_replacement("abc", 2)) # [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'b'), ('b', 'c'), ('c', 'c')]
在上面的示例中,我们从字符串 "abc" 中生成长度为 2 的重复组合。
组合问题在计算机科学和数学中都是很常见的。使用 itertools 模块可以轻松地在 Python 中生成组合和重复组合。