【发布时间】:2018-07-04 15:32:45
【问题描述】:
感谢您给我机会在这里提问。
一个小的背景故事:我需要/想要找到满足某些条件的集合。这些条件可能非常复杂,但我希望能够根据一个简单的示例进行调整。
首先,让我们创建一个示例:
from itertools import permutations
perm3 = list(permutations([1,2,3,4],3))
我们根据这些数字创建所有长度为 3 的排列(例如 (1,2,3),(1,3,2),...)。现在,我想找到满足特定条件的所有子集。例如,找到所有排列的子集,其中从来没有“3”。仅此一项就应该很容易实现:
first_neq_3 = [tuple for tuple in perm3 if tuple[0]!= 3]
但是,显然这只给了我一个子集——即“最大”的一个。现在,我想找到满足这个条件的所有子集。一个简短的例子,假设 first_neq_3 = [(1,2,3),(2,1,3),(1,3,2),(2,3,1)] - 那么我也想找到 [ (1,2,3),(2,1,3)] 等等。
我承认,对于所提供的示例来说,这是一个非常简单的问题,但我被卡住了,而且条件越复杂,问题就越复杂。
【问题讨论】:
标签: python list subset criteria