使用set函数列出所有独特元素是否是一个好习惯,或者是否有更好的方法,这些方法具有较低的时间和空间复杂性。
答案 0 :(得分:1)
在以下情况下,简单地调用set
是查找唯一元素的最佳方式:
它已经是O(n)了,你无法渐进地改进它。如果您需要保留订购:
from collections import OrderedDict
list(OrderedDict.fromkeys(seq))
这仍然是O(n)渐近,但由于更多的开销(Python循环与C循环)通常会更慢。如果必须处理不可用元素,则可能需要使用列表O(n ^ 2):
unique = []
for item in seq:
if item not in unique:
unique.append(item)