字典和集合是进行过性能高度优化的数据结构,特别是对于查找、添加和删除操作。本节将结合实例介绍它们在具体场景下的性能表现,以及与列表等其他数据结构的对比。
例如,有一个存储产品信息(产品 ID、名称和价格)的列表,现在的需求是,借助某件产品的ID找出其价格。则实现代码如下:
deffind_product_price(products,product_id):
forid,priceinproducts:
ifid==product_id:
returnprice
returnNone
products=[
(111,100),
(222,30),
(333,150)
]
print('The price of product 222 is {}'.format(find_product_price(products,222)))
运行结果为:
The price of product 222 is 30
福利:私信回复【01】可免费获取python入门教程视频
在上面程序的基础上,如果列表有 n 个元素,因为查找的过程需要遍历列表,那么最坏情况下的时间复杂度就为 O(n)。即使先对列表进行排序,再使用二分查找算法,也需要 O(logn) 的时间复杂度,更何况列表的排序还需要 O(nlogn) 的时间。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
但如果用字典来存储这些数据,那么查找就会非常便捷高效,只需 O(1) 的时间复杂度就可以完成,因为可以直接通过键的哈希值,找到其对应的值,而不需要对字典做遍历操作,实现代码如下:
products={
111:100,
222:30,
333:150
}
print('The price of product 222 is {}'.format(products[222]))
运行结果为:
The price of product 222 is 30
有些读者可能对时间复杂度并没有直观的认识&#x