我有一个包含等长数字序列的列表(在本例中,序列的长度是2,但在其他情况下它可能比序列长),例如:
[[3, 2], [0, 6], [6, 0], [7, 7], [0, 5], [7, 7]]
现在我想删除所有重复项([7, 7]
出现两次),但也要删除所有反向重复项([0, 6]
和[6, 0]
)。你知道吗
我现在的代码是:
def getUniqueShapes(shapes):
unique = []
for shape in shapes:
if shape not in unique and reversed(shape) not in unique:
shapes.append(shape)
print(unique)
我对这个例子的预期输出是
[[3, 2], [0, 6], [7, 7], [0, 5]]
由于not in
,这个算法运行速度很慢。
有没有一种简单的方法可以将这样的条件应用到时间复杂度更好的列表中?你知道吗
[1, 0]
的情况下,[0, 1]
两者的意思相同。你知道吗list
是不可散列的。你知道吗编辑:这将适用于任何长度的元素。你知道吗
相关问题 更多 >
编程相关推荐