文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python列表和集合效率源码对比分析

2023-07-06 01:51

关注

这篇“Python列表和集合效率源码对比分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python列表和集合效率源码对比分析”文章吧。

数据查找效率

关于集合和列表数据查找效率差距到底有多大?先看一组实例:

import timeimport randomnums = [random.randint(0, 2000000) for i in range(1000)]list_test = list(range(1000000))set_test = set(list_test)count_list, count_set = 0, 0t1 = time.time()# 测试在列表中进行查找for num in nums: if num in list_test: count_list += 1t2 = time.time()for num in nums:# 测试在集合中进行查找 if num in set_test: count_set += 1t3 = time.time()# 测试在集合中进行查找print('找到个数,列表:{},集合:{}'.format(count_list, count_set))print('使用时间,列表:{:.4f}s'.format(t2 - t1))print('使用时间,集合:{:.4f}s'.format(t3 - t2))

输出结果为:

找到个数,列表:515,集合:515使用时间,列表:7.7953s使用时间,集合:0.0010s

从上面例子可以清楚地看出,集合的查找效率远远高于列表,因此在不同的应用场景下,一定要选择合适的数据类型,在小数据量下看不出来性能区别,一旦换到大数据量下,就会变得差异性很大。

数据存储开销

集合的查找效率比列表要快得多,主要就是他们的存储原理不一样,集合需要消耗更多的空间来存储额外的信息,用空间开销来换时间效率,接下来我们通过getsizeof()函数看看他们存储开销的差异,getiszeof()函数是python的sys模块中用来获取对象内存大小的函数,返回的大小以字节为单位。

import sysimport randomlist_test = list(range(1000000))set_test = set(range(1000000))print('列表占用大小:', sys.getsizeof(list_test))print('集合占用大小:', sys.getsizeof(set_test))

输出结果为:

列表占用大小:9000112集合占用大小:33554656

从结果可以看出,同样的数据内容,集合存储的开销是列表的好几倍。

以上就是关于“Python列表和集合效率源码对比分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯