前期在python程序开发中用了很多set,
提供了丰富的‘&,|,-’等操作,使用非常方便,方便鬼方便,对于服务器性能还是非常重要的。于是
对SET的速度做了些测试,非常的快(我的测试方法是插入100W条数据,然后插入100W零1,set特性肯定会在这100w数据中查找,如果遍历查找是吃不消的,测试结果非常快)。
于是看了python 2.5中set部分的实现,貌似是使用hashtable做底层的数据结构。
于是写python代码做了测试,如下:
import random
l = []
m = {}
i = 0
while 1:
v = random.randint(1,10000)
l.append(v)
m[v] = 1
i += 1
if i >= 100:
break
s = set(l)
print 's:', s, '\n'
print 'm:', m.keys(), '\n'
执行后打印结果:
s: set([5888, 8712, 1553, 3092, 7706, 9247, 4640, 9761, 7721, 560, 8244, 1598, 1091, 4677, 9295, 7773, 7776, 1126, 3175, 1131, 3184, 9842, 2679, 7293, 639, 4230, 4231, 5571, 6810, 3227, 158, 2720, 6319, 3256, 2746, 7357, 4291, 2244, 7884, 7373, 6350, 8399, 1744, 2769, 9946, 2268, 7912, 9452, 7413, 247, 4053, 8448, 8982, 5915, 8476, 6439, 4908, 4402, 4405, 825, 314, 4417, 2893, 2895, 8020, 7005, 8039, 2922, 2417, 7028, 2422, 9591, 8573, 8576, 5953, 8771, 5827, 9649, 6071, 3523, 1992, 1487, 1488, 7125, 9174, 6618, 3035, 5596, 4064, 7137, 7650, 1509, 9710, 7153, 1010, 4596, 7157, 2040, 4092])
m: [5888, 8712, 1553, 3092, 7706, 9247, 4640, 9761, 7721, 560, 8244, 1598, 1091, 4677, 9295, 7773, 7776, 1126, 3175, 1131, 3184, 9842, 2679, 7293, 639, 4230, 4231, 5571, 6810, 3227, 158, 2720, 6319, 3256, 2746, 7357, 4291, 2244, 7884, 7373, 6350, 8399, 1744, 2769, 9946, 2268, 7912, 9452, 7413, 247, 4053, 8448, 8982, 5915, 8476, 6439, 4908, 4402, 4405, 825, 314, 4417, 2893, 2895, 8020, 7005, 8039, 2922, 2417, 7028, 2422, 9591, 8573, 8576, 5953, 8771, 5827, 9649, 6071, 3523, 1992, 1487, 1488, 7125, 9174, 6618, 3035, 5596, 4064, 7137, 7650, 1509, 9710, 7153, 1010, 4596, 7157, 2040, 4092]
居然完全一样,确认了之前的想法,set底层实现和dict底层实现相似,都用了hashtable。set,map都有相同的特性,集合中元素唯一。
分享到:
相关推荐
7.4 Python核心数据结构之字典(dict).mp4
Python数据类型使用 string list dict set number方法使用
使用python实现dict和json字符串的互相转换,以及相应的文件读入和存取操作。相当于实现了简单的jsonlib。对于Python的学习有一定的帮助。 主要的类是JsonParser,对外的接口在JsonParser里有定义,对外的接口均有...
【完整源码列表】 chapter_01_Introduction chapter_03_Linear_List chapter_04_String chapter_05_Stack_and_Queue chapter_06_Binary_tree chapter_07_Graph chapter_08_Dict_and_Set chapter_09_Sort
在学习python基础过程中,整理的python中list与tuple,dict与set区别,
主要介绍了Python 中list ,set,dict的大规模查找效率对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
只有 True 和 False 数据结构分为: 列表 list 元祖 tuple 字典 dict 集合 set 接下来⽤代码详细解释数据类型; 接下来⽤代码详细解释数据类型; python的type()⽅法可以得数据类型, 例如: 当不确定变量 a 是...
主要介绍了Python 的字典(Dict)是如何存储的,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
PYTHON学习教程:使用dict和set代码知识点讲解.docx
文章目录1、字典的简介2、... 前面介绍过了列表、元组,字典也比较类似,也是python中比较独特的一种数据结构。 那么字典是什么呢,其实就和我们使用的英语字典差不多,根据英文找到中文解释。注意,这里只能查
Python之使用dict和set共8页.pdf.zip
主要介绍了Python实现列表转换成字典数据结构的方法,结合实例形式分析了Python数值类型转换的相关技巧,需要的朋友可以参考下
Python注重解决问题的方法,而不是语法和结构。它被广泛应用于各个领域,包括Web开发、数据分析、人工智能、科学计算等。 Python的优点包括: 简单易学:Python的语法简洁明了,易于理解和学习。 高级特性:Python...
本文实例讲述了Python基本数据结构之字典类型dict用法。分享给大家供大家参考,具体如下: 词典类型 dict 字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。 dict 赋值 dict 整体放在花括号{}...
python实现字典包裹字典的替换key。python代码,如果有需要,请自行下载。
dict是python中的常用数据结构,应该尽量掌握其使用方法 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...
python以其优美的语法和方便的内置数据结构,赢得了不少程序员的亲睐。其中有个很有用的数据结构,就是字典(dict),使用非常简单。说到遍历一个dict结构,我想大多数人都会想到 for key in dictobj 的方法,确实这...
整型--int 布尔型--bool 字符串--str 列表--list 元组--tuple 字典--dict
资源分类:Python库 所属语言:Python 资源全名:dotted_dict-1.0.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059