我将线段的开始和结束坐标以及一些属性存储在表单的列表列表中。
我想从我的主列表中删除每个子列表,其中坐标对 (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]])
关于python - 通过将子列表的元素与Python中所有其他子列表中的元素进行比较来删除子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291927/