从python列表中删除坐标

这个问题在这里已经有了答案:

  • 如何在迭代时从列表中删除项目? 18个答案

  • 迭代时你不能改变某些东西。 结果很奇怪,反直觉,几乎从来没有你想要的。 事实上,许多收集明确地禁止这(例如集和字典)。

    相反,迭代一个副本(对于[:]中的e),或者,而不是修改现有列表,过滤它以获得包含您想要的项目的新列表([e for e in a if ..] 。])。 请注意,在许多情况下,您不必再次迭代过滤,只需将过滤与数据生成合并即可。

    L2 = []
    for (a,b) in L1:
      if a >= 0 and b >= 0:
        L2.append((a,b))
    
    L1 = L2
    print L1
    

    您可以使用列表理解进行过滤:

    >>> coords =  [(1, 2), (5, 6), (-1, -2), (1, -2)]
    >>> [coord for coord in coords
    ...  if not any(number < 0 for number in coord)]
    [(1, 2), (5, 6)]
    
    链接地址: http://www.djcxy.com/p/18013.html

    上一篇: Removing coordinates from list on python

    下一篇: Call one constructor from another