[转载] Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?

经常会做的一个操作是使用in来判断元素是否在列表中,这种操作非常便捷,省去了自行遍历的工作,而且因为大多数时候列表数据量比较小,搜索的速度也能满足需求。


key_list = [1, 2, 3, 4, 5, 6, 7, 8]
key = 10

if key in key_list:
	print("Hello!")

但是,凡是就怕个但是,当列表数据量非常大的时候,比如你要在一个长度为一百万(1000000)的列表中搜索某个元素是否存在,这种搜索变得非常低效,很可能需要花费几个小时甚至几天时间来处理你的数据,这种效率是无法接受的。

如何能够快速判断某个元素在一个数据集中?答案是使用集合(set。相比于使用列表来存储我们的数据集,我们使用集合来存储数据集只需要多加一个步骤,即将列表集合化(以列表为参数,使用set函数进行初始化),而判断是否包含仍用in

key_list = [1, 2, 3, 4, 5, 6, 7, 8]
key = 10

key_set = set(key_list)

if key in key_list:
	print("Hello!")

使用集合来存储数据集并做包含关系的判断,可以大大提升搜索速度!!!

来源

转载自: Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?

原作者: 莫小葉的自留地

posted @ 2023-03-17 12:58  夏目贵志ㅤ  阅读(234)  评论(0编辑  收藏  举报