繁体   English   中英

通过将子列表的元素与Python中所有其他子列表中的元素进行比较来删除子列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM