python中的分组排列

2024-04-24 03:49:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧列列表,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,D
AA,BB,C
AA
AA,BB

有人能帮忙吗?你知道吗


Tags: 数据示例列表顺序asall物品ad
1条回答
网友
1楼 · 发布于 2024-04-24 03:49:45

我想你需要一个Cartesian 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

相关问题 更多 >