gpt4 book ai didi

python - Python中子列表的高效匹配

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:52 25 4
gpt4 key购买 nike

给定一个二维列表,我想找到包含子列表的所有内容。我意识到我可以做类似的事情:

#Psuedo-Python (not kosher)
def MatchAll(theList,toMatch):
result=list(theList)
for nMatch in toMatch:
for nResult in result:
if not nMatch in nResult:
result.remove(nResult)
return result

但是这似乎有各种各样的坏处。这似乎与我迄今为止看到和处理的 Python 代码非常不同,除了我在迭代列表的同时对列表进行更改,我读过这根本不是一件好事。此外,它的效率似乎非常低:虽然为了我的目的 toMatch 的长度不应大于三,但 theList 的长度是未知的并且可能非常大。非常感谢任何帮助,并提前致谢。

最佳答案

我要做的是只保留与“匹配”列表中的所有项目匹配的子列表。

def match_all(the_list, to_match):
return [sublist for sublist in the_list
if all(item in sublist for item in to_match)]

您可以使用 set 来加快速度:

def match_all(the_list, to_match):
matches = set(to_match).issubset
return [sublist for sublist in the_list if matches(sublist)]

关于python - Python中子列表的高效匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8072811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com