[英]Removing sub list by comparing its elements with elements in all other sub lists in Python
我将线段的开始和结束坐标以及一些属性存储在具有列表的列表中。
我想从我的主列表中删除每个子列表,其中列表中已经存在一对坐标(x1 y1,x2 y2),但是相反(x2 y2,x1 y1)
我的代码是:
lines=[[(x1, y1), (x2, y2), id1, id2],[(x2, y2), (x1, y1), id2, id1]] #random example
lns=[ [l[0], l[1]] for l in lines] #make a list only with the node coordinate pairs
for line in lines:
if [line[1],line[0]] in lns:
lines.remove(line)
这段代码导致删除了一些我想要的元素(尽管不是全部),还有一些不应删除的元素。 知道我可能会缺少什么吗?
在初始代码中进行了很少的调整,并且在修复错误之后,此代码提供了正确的输出:
lines=[[(x1, y1), (x2, y2), id1, id2],[(x2, y2), (x1, y1), id2, id1]]
for line in lines:
if [line[1],line[0], line[3],line[2]] in lns:
lines.remove([line[1],line[0], line[3],line[2]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.