解决集合出现下划线“function can call be replace with set literal”的问题
集合的三种创建方式:
>>> def f():
return set([1, 2, 3])
>>> def h():
return set((1, 2, 3))
>>> def g(): #set Literals
return {1, 2, 3}
>>> f()
set([1, 2, 3])
>>> h()
set([1, 2, 3])
>>> g()
set([1, 2, 3])
效率对比:
>>> import timeit
>>> min(timeit.repeat(f))
0.675529956817627
>>> min(timeit.repeat(h))
0.5531120300292969
>>> min(timeit.repeat(g))
0.35515809059143066 #最快
尽管这里生成set()的方式对性能的提升很小,set literals不用花费时间调用函数处理中间数据,并且这种写法是非常漂亮的,所以建议用set literals的方式
a=set(["1","2","3"])可以用a={"1","2","3"}代替,这样算法的时间更短,不用调用set()函数,虽然这种表达和字典形式冲突,但机器会根据输入的形式判断是字典还是集合。但是如果是空字典和空集合,则必须用set加以区分。如空字典dic={} 空集合s=set()
网友评论