gpt4 book ai didi

python - 检查列表列表中是否存在列表的最快方法

转载 作者:太空狗 更新时间:2023-10-30 01:11:25 25 4
gpt4 key购买 nike

我有一个 list

a=[[1,2,3,4,5,6],[7,8,9,10,11,12]]   

检查 a 中的任何列表是否存在于另一个列表列表 b 中的最快方法是什么,其中

b=[[5, 9, 25, 31, 33, 36],[7,8,9,10,11,12],[10, 13, 22, 24, 33, 44]]

如果 a 中的任何列表出现在 b 中,我想删除它。我目前正在使用此代码:

for each in a:
for item in b:
if set(each).issubset(item)
a.remove(each)

这可行,但在处理大型列表时速度很慢,所以想知道是否有更好的方法。上面的代码给出了以下结果:

print(a)
[[1, 2, 3, 4, 5, 6]]

我不担心顺序,例如如果 a 中的列表是 [1,2,3,4,5,6] 我希望它是如果列表中存在 [1,2,3,4,5,6][3,4,1,6,2,5] 等,则删除b.

最佳答案

使用列表理解set

例如:

a=[[1,2,3,4,5,6],[7,8,9,10,11,12]]  
b=[[5, 9, 25, 31, 33, 36],[7,8,9,10,11,12],[10, 13, 22, 24, 33, 44]]

setA = set(map(tuple, a))
setB = set(map(tuple, b))

print([i for i in setA if i not in setB])

输出:

[(1, 2, 3, 4, 5, 6)]

关于python - 检查列表列表中是否存在列表的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510255/

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