Python 如何从列返回列表的所有子集?

Python 如何从列返回列表的所有子集?,python,pandas,Python,Pandas,我有一个列表a=[a,B,C,D]。 串联_值是df中的一列列表。如何获取列表a的所有子集,这些子集存在于列连接的_值中 Concatenated_values [B,C] [A,B,C,D] [B,C,D] [P,Q,R,S,T] [C,D] 将a和列表项转换为集合,并使用和布尔索引: set_a = set(a) df[df.Concatenated_values.apply(lambda x: set(x).issubset(set_a))] 结果: Concate

我有一个列表
a=[a,B,C,D]

串联_值
df
中的一列列表。如何获取列表
a
的所有子集,这些子集存在于列
连接的_值中

Concatenated_values 

[B,C]

[A,B,C,D] 

[B,C,D]

[P,Q,R,S,T]

[C,D]

a
和列表项转换为集合,并使用和布尔索引:

set_a = set(a)
df[df.Concatenated_values.apply(lambda x: set(x).issubset(set_a))]
结果:

  Concatenated_values
0              [B, C]
1        [A, B, C, D]
2           [B, C, D]
4              [C, D]
注意:
issubset
接受任何iterable作为参数,因此您也可以使用
set(x)。issubset(a)
,但我发现
a
到set的显式转换更清晰,可能更有效。

请看一下:

从返回元素的r长度子序列 输入不可编辑

组合按字典排序顺序发出。那么,如果 如果对输入iterable进行排序,则 组合元组将在中生成 排序顺序


您可以将所有列表合并为一个列表,然后获得所有组合。

您的问题有点含糊不清。您可以添加更多详细信息吗?请向我们提供有关您的问题陈述的更多详细信息,并展示您的工作。如果我获取名为a的列表,该列表等于[a,B,C,D],并尝试从我显示的df中的列中查找其所有子集,我的输出应该是[B,C][a,B,C,D][B,C,D]和[C D]
itertools.combinations(iterable, r)