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

标签 python list element

我将线段的开始和结束坐标以及一些属性存储在表单的列表列表中。

我想从我的主列表中删除每个子列表,其中坐标对 (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/

相关文章:

python - 沿多边形边界生成等距点,但 CW/CCW

python - 从 sklearn 导入 check_arrays

list - Python函数输出错误,检查索引以查看值?

html - CSS3 转换——备用触发器?

python - 基于日期时间索引 Pandas 每 12 小时合并数据框和填充列?

python - Python 是否有更简洁的方式来表达 "if x contains a|b|c|d..."?

Python,如何使用列表中输入的项目并使用它们来分配另一个值?是否可以

带有循环列表的Python调用函数

Java 从一个 ArrayList 生成两个 ArrayList

c++ - 如何取消引用数组元素 (C++)