Python列表list、字典dict、集合set比较
Python
中常用到list
、dict
、set
三种数据结构。除此之外,编程时最常见的操作就是查找,依据使用的数据结构的不同,查找的效率也不尽相同。先上实验,后续补充原因。
import random
import datetime
a_list = list()
b_dict = dict()
c_set = set()
total_num = 100000
# 创建长度为total_num的随机列表、字典和集合
for _ in range(total_num):
val = random.randint(0, total_num)
a_list.append(val)
b_dict[val] = 1
c_set.add(val)
# 在 集合 中进行查找操作total_num次
start_time = datetime.datetime.now()
for i in range(total_num):
if i in c_set:
pass
end_time = datetime.datetime.now()
# 在 字典 中进行查找操作total_num次
start_time = datetime.datetime.now()
for i in range(total_num):
if i in b_dict:
pass
end_time = datetime.datetime.now()
# 在 列表 中进行查找操作total_num次
start_time = datetime.datetime.now()
for i in range(total_num):
if i in a_list:
pass
end_time = datetime.datetime.now()
实验结果如下:
明显看出列表list
查询的效率比字典dict
和集合set
低了不止一个数量级。查找效率为set
>dict
>list
。
原理后续补充