我有两个列表,一个包含所有记录,例如[['eggs', 'milk', 'butter'], ['ham', 'spam', 'milk'], ['cereal', 'skittles']]
,另一个包含规则[['milk', 'eggs'], ['milk','ham']]
。你知道吗
我试图按规则列表筛选记录,但是,我想捕获[['eggs', 'milk', 'butter'], ['ham', 'spam', 'milk']]
,尽管它不完全匹配[['milk', 'eggs'], ['milk','ham']]
顺序和额外项。你知道吗
records = [['eggs', 'milk', 'butter'], ['ham', 'spam', 'milk'], ['cereal', 'skittles']]
list_of_rules = [['milk', 'eggs'], ['milk','ham']]
# this list comprehension only filters for exact matches
results = [[x for x in L if x in records] for L in list_of_rules]
# expected output
print(results)
>>[['eggs', 'milk', 'butter'], ['ham', 'spam', 'milk']]
非常感谢所有建议。你知道吗
您可以使用
list
个sets
规则,并要求带有内部列表的任何规则intersection与set
相同(即,集合中的所有项也存在于内部列表中):输出:
您可以使用以下列表:
它为每个记录列表} ),以便} )。你知道吗
L
循环,并检查是否至少存在一个规则列表R
(使用内置函数^{R
包含在L
(使用set方法^{相关问题 更多 >
编程相关推荐