0

2 つの要素の長いリスト/配列として表される 2 次元の点のリストがあります。例えば:

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は、少なくとも1つの要素が共通しているすべての要素をここで削除しているようです(すべてが共通しているわけではありません:/ )。

要素が最初のリストに完全に含まれていない場合、要素を除外する素敵な/短い/エレガントな方法はありますか?

4

3 に答える 3