从python列表中删除坐标
这个问题在这里已经有了答案:
迭代时你不能改变某些东西。 结果很奇怪,反直觉,几乎从来没有你想要的。 事实上,许多收集明确地禁止这(例如集和字典)。
相反,迭代一个副本(对于[:]中的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