前期在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都有相同的特性,集合中元素唯一。
分享到:
相关推荐
在Python语言中,数据结构包括基本数据类型如整数、浮点数和字符串,以及更复杂的数据结构如列表(list)、元组(tuple)、字典(dict)和集合(set)。这些数据结构为数据的组织提供了丰富的方式,例如列表和元组...
此外,Python还提供了其他数据结构,如列表(list)、元组(tuple)、字典(dict)和集合(set),这些在实际编程中非常有用。列表是有序的可变集合,用方括号[]表示;元组是有序的不可变集合,用圆括号()表示;字典...
在Python编程语言中,数据结构是组织和存储数据的基本方式,它们可以被统称为容器,因为它们能够容纳各种类型的值。这些容器分为三类:序列、映射和集合。 序列是Python中最基本的数据结构之一,其中包括列表、元组...
Python中的List,Set,Dict Comprehension是一种简洁的语法结构,用于快速生成新的列表、集合或字典。这种语法在处理序列数据时尤其有用,它将迭代、筛选和转换过程结合在一起,使得代码更加简洁易读。 List ...
Python作为一种解释型语言,其内置的数据结构如list、dict、set等简单易用,但理解它们的底层实现对于优化代码性能至关重要。比如,list的插入和删除操作在不同场景下的效率差异,以及dict的哈希表原理,都是需要...
### Python数据类型之Set集合实例详解 #### 一、概述 在Python中,`set`是一...`set`作为一种高效的数据结构,在处理集合相关的运算和问题时非常有用。掌握好`set`的使用,可以帮助我们在编程时更加高效地解决问题。
字典是一种键值对(Key-Value)的数据结构,它通过唯一的键来访问值。字典非常适合用于存储非序列化的数据。字典的创建方式如下: ```python my_dict = {'one': 1, 'two': 2, 'three': 3} ``` 字典支持的操作包括:...
Python基础部分涵盖了数据类型、变量、字符串、编码、列表(list)、元组(tuple)、条件判断、循环以及字典(dict)和集合(set)等基础知识。Python中的数据类型包括整数、浮点数、字符串、布尔值、列表、元组、字典和集合...
在Python编程语言中,字典是一种非常重要的数据结构,它以键值对的形式存储数据,支持快速查找、插入和删除等操作。字典提供了多种内置方法来简化这些操作,其中`setdefault()`方法在某些场景下显得尤为实用,尤其是...
【Python 数据结构与算法】Python 语法查询大宝剑(全) 在编程中,掌握好数据结构和算法是至关重要的,它们是解决问题的基础。本文旨在系统地梳理Python的基础语法,帮助初学者或需要巩固语法的开发者快速查询和...
此外,Python还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据类型,它们分别对应Java的ArrayList、数组、HashSet和HashMap。 在Python中,函数定义使用`def`关键字,函数可以作为返回值,...
8. **Chapter 9**:可能包括更复杂的数据结构,如集合(set)和字典(dict),它们在解决实际问题中起到重要作用。 9. **Chapter 6**:通常涵盖基本的数据类型,如字符串、整数、浮点数、布尔值等,以及它们的操作...
Python中的字典和集合是两种非常重要的数据结构,它们在数据处理和编程中扮演着关键角色。本章将深入探讨这两个概念,以及如何在实际应用中有效地使用它们。 首先,让我们了解一下字典(Dictionary)。字典是Python...
在`array.py`这个文件中,可能会详细展示如何创建这四种数据结构,以及它们的一些基本操作,如添加元素(列表和字典)、索引和切片(列表和元组)、成员关系测试(集合和字典)、更新和删除元素(列表和字典)等。...
5. **基础数据类型和变量**:Python有多种内置数据类型,包括整型(int)、浮点型(float)、布尔型(bool)、字符串(str)等。变量可以随时赋值和改变类型。 6. **字符串和编码**:Python3默认使用Unicode编码,...
本篇学习笔记主要涉及了Python中的四个核心数据结构:集合(set)、字典(dict)、元组(tuple)和列表(list)。 首先,集合(set)是一个不包含重复元素的无序序列。通过`set()`函数或花括号`{}`来创建。集合不能...
总结来说,本文提供的Python查找相似单词的方法是一个通过字符串排序和组合操作,以及利用迭代器、默认字典等高级数据结构和函数模块,进行高效的字符串处理和数据存储的典型示例。代码示例不仅本身具有实用价值,...
Python语言的内置数据结构在编程中扮演着至关重要的角色,尤其在数据分析、数据挖掘和机器学习等领域的应用中。本文将深入浅出地探讨Python原生提供的数据结构,帮助开发者更好地理解和利用这些工具。 首先,我们要...
### 软件测试+Python测试开发面试题知识点解析 #### 一、中文单项选择题...通过以上分析,我们深入了解了Python语言的一些基础知识和常用技巧,这对于参加软件测试或Python测试开发相关的面试来说是非常有用的准备。
LeetCode 是一个在线平台,提供了一系列编程挑战,旨在帮助开发者提升算法和数据结构技能。它涵盖了多种编程语言,其中Python是常见的选择之...同时,这也是一个学习和实践Python编程,特别是算法和数据结构的好资源。