如何检索包含特定查询项的列表

use*_*879 0 python search list

我正在尝试将与查询项相关的项列表分组.下面是问题的一个例子和我的尝试:

>>> _list=[[1,2,3],[2,3,4]]
>>> querylist=[1,2,4]
>>> relvant=[]
>>> for x in querylist:
        for y in _list:
            if x in y:
                relvant.append(y)
Run Code Online (Sandbox Code Playgroud)

我的输出:

>>> relvant
[[1, 2, 3], [1, 2, 3], [2, 3, 4], [2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[[[1, 2, 3]], [[1, 2, 3], [2, 3, 4]],[[2, 3, 4]]]
Run Code Online (Sandbox Code Playgroud)

问题是在查询项的每个循环之后,我希望将相关列表分组,但我的尝试不是这种情况.

谢谢你的建议.

Rob*_*let 7

我认为使用列表理解更清楚:

>>> _list = [[1,2,3],[2,3,4]]
>>> querylist = [1,2,4]
>>> [[l for l in _list if x in l] for x in querylist]
[[[1, 2, 3]], [[1, 2, 3], [2, 3, 4]], [[2, 3, 4]]]
Run Code Online (Sandbox Code Playgroud)

内部表达式[l for l in _list if x in l]描述了包含的所有子列表的列表x.外部表达式的作用是获取x查询列表中所有值的列表.