python中集合的表述方式

解决集合出现下划线“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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容