Find intersection of two nested lists?

前端 未结 20 1538
星月不相逢
星月不相逢 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 05:07

    To define intersection that correctly takes into account the cardinality of the elements use Counter:

    from collections import Counter
    
    >>> c1 = [1, 2, 2, 3, 4, 4, 4]
    >>> c2 = [1, 2, 4, 4, 4, 4, 5]
    >>> list((Counter(c1) & Counter(c2)).elements())
    [1, 2, 4, 4, 4]
    

提交回复
热议问题