Python “in” operator speed

前端 未结 2 659
心在旅途
心在旅途 2021-01-17 15:08

Is the in operator\'s speed in python proportional to the length of the iterable?

So,

len(x) #10
if(a in x): #lets say this takes time A         


        
相关标签:
2条回答
  • 2021-01-17 15:48

    There's no general answer to this: it depends on the types of a and especially of b. If, for example, b is a list, then yes, in takes worst-case time O(len(b)). But if, for example, b is a dict or a set, then in takes expected-case time O(1) (i.e., constant time).

    About "Is A > B?", you didn't define A or B. As above, there's no general answer to which of your in statements will run faster.

    0 讨论(0)
  • 2021-01-17 15:57

    A summary for in:

    list - Average: O(n)
    set/dict - Average: O(1), Worst: O(n)
    

    See this for more details.

    0 讨论(0)
提交回复
热议问题