`
j2002sx
  • 浏览: 36314 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

python的set数据结构居然和dict相似

阅读更多

 

前期在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都有相同的特性,集合中元素唯一。

 

0
3
分享到:
评论

相关推荐

    python数据结构和算法

    在Python语言中,数据结构包括基本数据类型如整数、浮点数和字符串,以及更复杂的数据结构如列表(list)、元组(tuple)、字典(dict)和集合(set)。这些数据结构为数据的组织提供了丰富的方式,例如列表和元组...

    基础篇8-python基本数据类型习题解答

    此外,Python还提供了其他数据结构,如列表(list)、元组(tuple)、字典(dict)和集合(set),这些在实际编程中非常有用。列表是有序的可变集合,用方括号[]表示;元组是有序的不可变集合,用圆括号()表示;字典...

    Python中常见的数据结构可以统称为容器.pdf

    在Python编程语言中,数据结构是组织和存储数据的基本方式,它们可以被统称为容器,因为它们能够容纳各种类型的值。这些容器分为三类:序列、映射和集合。 序列是Python中最基本的数据结构之一,其中包括列表、元组...

    python中的list,set,dict comprehension详解

    Python中的List,Set,Dict Comprehension是一种简洁的语法结构,用于快速生成新的列表、集合或字典。这种语法在处理序列数据时尤其有用,它将迭代、筛选和转换过程结合在一起,使得代码更加简洁易读。 List ...

    邓俊辉数据结构(C++语言版)第3版笔记。.zip

    Python作为一种解释型语言,其内置的数据结构如list、dict、set等简单易用,但理解它们的底层实现对于优化代码性能至关重要。比如,list的插入和删除操作在不同场景下的效率差异,以及dict的哈希表原理,都是需要...

    Python数据类型之Set集合实例详解

    ### Python数据类型之Set集合实例详解 #### 一、概述 在Python中,`set`是一...`set`作为一种高效的数据结构,在处理集合相关的运算和问题时非常有用。掌握好`set`的使用,可以帮助我们在编程时更加高效地解决问题。

    Python技术数据类型介绍.docx

    字典是一种键值对(Key-Value)的数据结构,它通过唯一的键来访问值。字典非常适合用于存储非序列化的数据。字典的创建方式如下: ```python my_dict = {'one': 1, 'two': 2, 'three': 3} ``` 字典支持的操作包括:...

    Python3 教程.pdf

    Python基础部分涵盖了数据类型、变量、字符串、编码、列表(list)、元组(tuple)、条件判断、循环以及字典(dict)和集合(set)等基础知识。Python中的数据类型包括整数、浮点数、字符串、布尔值、列表、元组、字典和集合...

    Python中字典的setdefault()方法教程

    在Python编程语言中,字典是一种非常重要的数据结构,它以键值对的形式存储数据,支持快速查找、插入和删除等操作。字典提供了多种内置方法来简化这些操作,其中`setdefault()`方法在某些场景下显得尤为实用,尤其是...

    python【数据结构与算法】Python语法查询大宝剑(全)

    【Python 数据结构与算法】Python 语法查询大宝剑(全) 在编程中,掌握好数据结构和算法是至关重要的,它们是解决问题的基础。本文旨在系统地梳理Python的基础语法,帮助初学者或需要巩固语法的开发者快速查询和...

    基于Java教你如何半小时搞定python基础

    此外,Python还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据类型,它们分别对应Java的ArrayList、数组、HashSet和HashMap。 在Python中,函数定义使用`def`关键字,函数可以作为返回值,...

    Python入门经典 源代码 作者James Payne美

    8. **Chapter 9**:可能包括更复杂的数据结构,如集合(set)和字典(dict),它们在解决实际问题中起到重要作用。 9. **Chapter 6**:通常涵盖基本的数据类型,如字符串、整数、浮点数、布尔值等,以及它们的操作...

    第7章 python字典和集合-python入门 python基础课件.pptx

    Python中的字典和集合是两种非常重要的数据结构,它们在数据处理和编程中扮演着关键角色。本章将深入探讨这两个概念,以及如何在实际应用中有效地使用它们。 首先,让我们了解一下字典(Dictionary)。字典是Python...

    python数组,包含列表、元组、字典、集合

    在`array.py`这个文件中,可能会详细展示如何创建这四种数据结构,以及它们的一些基本操作,如添加元素(列表和字典)、索引和切片(列表和元组)、成员关系测试(集合和字典)、更新和删除元素(列表和字典)等。...

    PYTHON从入门到精通.doc

    5. **基础数据类型和变量**:Python有多种内置数据类型,包括整型(int)、浮点型(float)、布尔型(bool)、字符串(str)等。变量可以随时赋值和改变类型。 6. **字符串和编码**:Python3默认使用Unicode编码,...

    python 面试 基础学习笔记整理(csdn)————程序.pdf

    本篇学习笔记主要涉及了Python中的四个核心数据结构:集合(set)、字典(dict)、元组(tuple)和列表(list)。 首先,集合(set)是一个不包含重复元素的无序序列。通过`set()`函数或花括号`{}`来创建。集合不能...

    Python查找相似单词的方法

    总结来说,本文提供的Python查找相似单词的方法是一个通过字符串排序和组合操作,以及利用迭代器、默认字典等高级数据结构和函数模块,进行高效的字符串处理和数据存储的典型示例。代码示例不仅本身具有实用价值,...

    浅析Python语言自带的数据结构有哪些

    Python语言的内置数据结构在编程中扮演着至关重要的角色,尤其在数据分析、数据挖掘和机器学习等领域的应用中。本文将深入浅出地探讨Python原生提供的数据结构,帮助开发者更好地理解和利用这些工具。 首先,我们要...

    软件测试+python测试开发面试题

    ### 软件测试+Python测试开发面试题知识点解析 #### 一、中文单项选择题...通过以上分析,我们深入了解了Python语言的一些基础知识和常用技巧,这对于参加软件测试或Python测试开发相关的面试来说是非常有用的准备。

    leetcode全套解答python版本

    LeetCode 是一个在线平台,提供了一系列编程挑战,旨在帮助开发者提升算法和数据结构技能。它涵盖了多种编程语言,其中Python是常见的选择之...同时,这也是一个学习和实践Python编程,特别是算法和数据结构的好资源。

Global site tag (gtag.js) - Google Analytics