python使用一个集合代替列表
"""
说明:对于一个指定的序列,如果需要获得一个只包含该序列中不重复的序列时,使用以下算法:
"""
seq=[‘a‘,‘a‘,‘b‘,‘c‘,‘c‘,‘d‘]
res=[]
for el in seq:
if el not in res:
res.append(el)
print res
or
在res列表中使用in进行查找,其最高复杂高将是0(n),然后全局循环中调用它,它的复杂度也是0(n),所以复杂度通常会是2次方。
对于这样的操作使用set()类型会更快,因为它是使用dict之类的hash来查找存储的值 ,也就是说,查询它是否在set中所需的时间将是一个常数:
如下: set(seq)
注意:当尝试一个算法的复杂度时,应该认真考虑数据结构,内建类型有很多,要选择正确的一种,在调用算法之前,转换数据往往比基于原始数据修改算法使其变得更快更好!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。