首页 > 其他 > 详细

07-03成员运算符

时间:2020-06-01 09:13:45      阅读:56      评论:0      收藏:0      [点我收藏+]

成员运算符

成员运算符的目的:用于判断一个元素是否在容器中
成员运算符:返回的是bool

  • in
  • not in
In [68]: 3 in [1, 2 ,3 ,4 ]
Out[68]: True

In [69]: 10 in [1, 2, 3, 4]
Out[69]: False

In [71]: 10 not in [1, 2, 3, 4]
Out[71]: True

In [72]: ‘love‘ in ‘i love python‘
Out[72]: True

成员运算符的复杂程度

集合的成员运算符和其他的线性结构的时间复杂度不同

成员运算:

  • 集合O(1)
  • 列表(其他线性结构)O(n)

总结:

  • 做成员运算的时候, 集合的效率远高于列表
  • 做成员运算时, 运算的效率和列表的规模有关
  • 做成员运算时, 集合的效率和集合的规模无关。
In [74]: lst = list(range(10000))

In [75]: s = set(range(10000))

In [76]: %%timeit
    ...: -1 in lst
    ...: 
10000 loops, best of 3: 125 μs per loop

In [77]: %%timeit      # 更快
    ...: -1 in s 
    ...: 
The slowest run took 39.70 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 45 ns per loop

做成员运算的时候, 集合的效率远高于列表

In [78]: lst2 = list(range(100))

In [79]: %%timeit
    ...: -1 in lst2
    ...: 
1000000 loops, best of 3: 1.29 μs per loop

做成员运算时, 运算的效率和列表的规模有关

In [80]: s2 = set(range(100))

In [81]: %%timeit
    ...: -1 in s2
    ...: 
10000000 loops, best of 3: 39.1 ns per loop

做成员运算时, 集合的效率和集合的规模无关。

07-03成员运算符

原文:https://www.cnblogs.com/cishi/p/13023174.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!