为了账号安全,请及时绑定邮箱和手机立即绑定

python中子组的排列

python中子组的排列

慕妹3146593 2021-09-11 10:20:31
我有一个数据框列的列表,L。L=[AA ,  AS  ,  AD  , BB  , BC  , C ,  D ]我需要所有项目的组合,没有特定的顺序。所以我可以使用我认为的排列?然而,我只能在每个组合中有一个 A 和一个 B;所以我需要组合A=[AA,AS,AD]B=[BB,BC]All others=[C,D]我也不需要所有的项目都出现在输出的排列中。下面是一些示例组合:AA,BB,C,DAA,BB,CAAAA,BB有人能帮忙吗?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

我认为您需要笛卡尔积。你可以用itertools.product. 由于您不需要每个元素,您可以附加None到每个列表并在之后删除它们。


下面是一个例子:


from itertools import product

for choices in product(['AA','AS','AD',None],['BB', 'BC', None], ['C', None], ['D', None]):

    print(' '.join(column for column in choices if column))

它输出:


AA BB C D

AA BB C

AA BB D

AA BB

AA BC C D

AA BC C

AA BC D

AA BC

AA C D

AA C

AA D

AA

AS BB C D

AS BB C

AS BB D

AS BB

AS BC C D

AS BC C

AS BC D

AS BC

AS C D

AS C

AS D

AS

AD BB C D

AD BB C

AD BB D

AD BB

AD BC C D

AD BC C

AD BC D

AD BC

AD C D

AD C

AD D

AD

BB C D

BB C

BB D

BB

BC C D

BC C

BC D

BC

C D

C

D


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号