我有一个二维点列表,表示为两个元素长列表/数组。例如:
points = 
      [[ 10.       ,  10.       ],
       [ 11.       ,  10.       ],
       [ 10.5      ,   9.1339746],
       [ 10.5      ,  10.       ],
       [ 10.75     ,   9.5669873],
       [ 10.25     ,   9.5669873],
       [  2.       ,   2.       ],
       [  3.       ,   2.       ],
       [  2.5      ,   1.1339746],
       [  2.5      ,   2.       ],
       [  2.75     ,   1.5669873],
       [  2.25     ,   1.5669873]]
我现在想要一个不包含第一个列表的某些元素的列表。
exclude = [[2., 2.], [3., 2.], [2.5, 2.]]
很遗憾
new_list = [p for p in points if p not in exclude]
会产生
[[ 10.       ,  10.       ],
 [ 11.       ,  10.       ],
 [ 10.5      ,   9.1339746],
 [ 10.5      ,  10.       ],
 [ 10.75     ,   9.5669873],
 [ 10.25     ,   9.5669873],
 [  2.75     ,   1.5669873],
 [  2.25     ,   1.5669873]]
代替
[[ 10.       ,  10.       ],
 [ 11.       ,  10.       ],
 [ 10.5      ,   9.1339746],
 [ 10.5      ,  10.       ],
 [ 10.75     ,   9.5669873],
 [ 10.25     ,   9.5669873],
 [  2.5      ,   1.1339746],
 [  2.75     ,   1.5669873],
 [  2.25     ,   1.5669873]]
似乎 Python 删除了这里至少有一个共同元素的所有元素(而不是所有共同元素 :/ )。
如果元素没有完全包含在第一个列表中,是否有任何好的/简短/优雅的方式来排除元素?