问题是我试图比较嵌套列表和没有相同值或元素的列表?你知道吗
lst3 = [1, 6, 7, 10, 13, 28]
lst4 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
lst5 = [list(filter(lambda x: x not in lst3, sublist)) for sublist in lst4]
返回:
[[17, 18, 21, 32], [11, 14], [5, 8, 15, 16]]
但我想从l3得到不匹配的号码。举个例子:
[[1,6,7,10,28],[1,6,10],[1,7,13,28]]
我希望结果是:
[[1,6,7,10,28],[1,6,10],[1,7,13,28]]
与其使用
filter
和lambda
之类的工具,不如直接使用列表理解:哪个是
这与您给出的预期输出略有不同,但我认为您在该预期输出的第三个子列表中犯了一个印刷错误。你知道吗
在您的示例中,您将每个
sublist
中的每个元素与lst3
进行比较。你知道吗问题是,您正在询问来自
sublist
的每个x
是否不在lst3
中,这将给出来自sublist
的剩余结果。你可能想换个方式做。你知道吗它不仅给了你想要的答案,而且我甚至注意到你在预期结果中犯了一个错误:
与你的相比:
(请参见最后一个嵌套数组)
在线示例: https://onlinegdb.com/Hy8K8GPSB
我会接受约翰·科尔曼的回答,但为了可读性,我会调整词序。你知道吗
lst5 = [[x for x in lst3 if x not in sublist] for sublist in lst4]
相关问题 更多 >
编程相关推荐