我有一个二维点列表,表示为两个元素长列表/数组。例如:
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 删除了这里至少有一个共同元素的所有元素(而不是所有共同元素 :/ )。
如果元素没有完全包含在第一个列表中,是否有任何好的/简短/优雅的方式来排除元素?