不要在python中用in判断值是否包含在list了!

python

不知道小伙伴们在平时开发中注意到使用in判断某个值是否存在一个列表中时,数据量比较大的时候效率特别差。

学过算法的小伙伴应该很轻易的就知道了,在list中in关键字的时间复杂度为O(n),现在小编给大家推荐一个效率瞬间提升无数倍的操作。

将list数据存入dict中,因为dict的操作中in关键字的时间复杂度为O(1).小伙伴们赶紧去体验一下吧。

Table 1: Big-O Efficiency of Python Dictionary Operations

operation

Big-O Efficiency

copy

O(n)

get item

O(1)

set item

O(1)

delete item

O(1)

contains (in)

O(1)

iteration

O(n)

Table 2: Big-O Efficiency of Python List Operators

Operation

Big-O Efficiency

index []

O(1)

index assignment

O(1)

append

O(1)

pop()

O(1)

pop(i)

O(n)

insert(i,item)

O(n)

del operator

O(n)

iteration

O(n)

contains (in)

O(n)

get slice [x:y]

O(k)

del slice

O(n)

set slice

O(n+k)

reverse

O(n)

concatenate

O(k)

sort

O(n log n)

multiply

O(nk)

listdict等数据结构的相关知识可以点击查看哦!

感兴趣的小伙伴可以关注本站,一起交流学习

发表评论