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)