排列/组合(内置函数方法)

本文介绍了Python内置库itertools用于生成排列组合的方法,包括笛卡尔积、排列、不重复的组合以及带重复元素的组合。通过示例展示了如何使用这些函数来获取所有可能的排列和组合形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取可重复的排列组合

笛卡尔积:itertools.product(*iterables[, repeat]) 

import itertools
# 0~10,放回抽样组成2个数组的所有可能,1/11*1/11=1/121
b = []
for i in itertools.product(['0','1','2','3','4','5','6','7','8','9','10'], repeat = 2):
    b.append(','.join(i),)
len(b)
121

排列:itertools.permutations(iterable[, r])

将其中的元素排列为所有可能的情况,并以元组序列的形式返回 

from itertools import permutations
# 0~10,不放回抽样组成2个数组的所有可能,1/11*1/10=1/110
a = list(permutations(range(0,11,1), 2))
len(a)
110

获取不重复排列组合

itertools.combinations(iterable, r)

对于combinations()来说,元素之间的实际顺序是不作考虑的,组合('a', 'b')和('b', 'a')被认为是相同的组合形式。

a = []
for i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值