Find intersection of two nested lists?

前端 未结 20 1040
星月不相逢
星月不相逢 2020-11-22 04:16

I know how to get an intersection of two flat lists:

b1 = [1,2,3,4,5,9,11,15]
b2 = [4,5,6,7,8]
b3 = [val for val in b1 if val in b2]

or

<
20条回答
  •  南笙
    南笙 (楼主)
    2020-11-22 04:50

    Since intersect was defined, a basic list comprehension is enough:

    >>> c3 = [intersect(c1, i) for i in c2]
    >>> c3
    [[32, 13], [28, 13, 7], [1, 6]]
    

    Improvement thanks to S. Lott's remark and TM.'s associated remark:

    >>> c3 = [list(set(c1).intersection(i)) for i in c2]
    >>> c3
    [[32, 13], [28, 13, 7], [1, 6]]
    

提交回复
热议问题