我有一个函数,必须同时检查两个列表中的重复项。对于笛卡尔坐标系,一个列表有x值,另一个列表有y值。一个坐标不能重复。当前我的代码如下所示:
for q in range(0, len(prows)-1, 1):
for w in range(0, len(prows)-1, 1):
if prows[q] == prows[w] and pcols[q] == prows[w]:
prows.remove(prows[w])
pcols.remove(pcols[w])
其中prows是y值,pcols是x值。这是可行的,问题是我的第一个for循环只在第二个for循环遍历它的所有值之后更新船头的长度。由于这个原因,我得到了一个索引错误,第一个for循环仍然具有原始的长度prows,而第二个for循环具有删除了重复项的较新长度。你知道吗
使用
dict
保留其键的插入顺序(在Python 3.7中是will become part of the specification,但在3.6中已经是这样)这一事实,可以在一个简短的行中完成:请注意,与人们可能期望的相反,这对集合不起作用-实际上必须使用dict(带有伪值)。你知道吗
输出:
也可以通过执行以下操作恢复到xlist和ylist:
输出:
相关问题 更多 >
编程相关推荐