python 基本数据结构,python中的数据结构有哪些

  python 基本数据结构,python中的数据结构有哪些

  点击上方蓝色“初学者学习Python”,选择“设为明星”

  带你一起学Python!

  周围越来越多的人在学习Python。Python确实很容易上手,但是很难掌握。因为Python很灵活,同一件事有多种解决方案,而且很有技巧。

  今天,边肖汇编了一个Python里面关于数据结构的各种奇淫技巧大全的集合。连chdyz玩Python都值得一读。让我们来看看!

  1.Dict型数据结构字典、Map、哈希表是Python中最核心的数据结构,类似的数据结构也存在于Java、C等几乎所有主流编程语言中,是非常重要的知识点。

  1).普通词典

  2).上面提到的顺序字典只是字典最基本的用法。当环境真正生成的时候,我们往往需要保持需要插入的顺序。这时,我们需要使用OrderedDict。

  3).默认字典如果你想在存储数据的时候有一个默认值为幸福的方盒子,那么你应该使用defaultdict,这个方法在很多场景下非常巧妙,可以节省很多代码。

  4).链式映射当我们遇到复杂的数据结构时,比如需要将多个字典合并成一个字典,就需要使用链式映射进行搜索。

  2.数组型数据结构阵列几乎所有语言都有。大学记得学C语言。数组是最先接触到的数据结构。数组都有一个下标,然后都连续分配内存。

  因为数组将信息存储在相邻的内存块中,所以它被视为一个连续的数据结构。在许多静态语言中,需要强制初始化数组的类型和长度。如果数组越界,将有随机数据被寻址。Python的数组是如何表示的?

  1).列表变量动态数组

  2)不可变数组和列表一样,但是元组对象是不可变的,不能修改和删除。

  3).array Python,类似C语言,有一个数组模块,可以创建类似C语言的数组。数组。数组的用法类似于list,唯一的区别是它只能存储相同数据类型的数据。它占用的存储空间大小就是数据的大小。

  4).字符数组Python 3.x使用str对象将文本数据存储为Unicode字符的不可变序列。这意味着str字符串数组是一个不可变的字符数组。

  3.自定的类数据结构cxdmn的数据结构比较复杂的时候,你会构造类来封装你的数据结构。用Python中的类封装有很多种方法。让我们逐一解释。

  1).基本类封装

  这个Car类封装了汽车的数据,比如颜色,行驶的公里数,是否自动。然后我们可以初始化它的对象car1,car2,并通过__init__函数初始化这些对象。

  2).数据类数据类仅在Python 3.7中启动。这是一个新的模块,它被转换成一个数据存储类。使用起来非常方便,你的对象实例会立刻得到一些有用的功能,从而省去一些打字和手工实现的工作:

  不需要实现。__init__()方法,因为定义实例变量的语法很短。

  数据类的实例通过自动生成的自动获得一个漂亮的字符串表示。__repr__()方法。

  实例接受类型注释,因此数据类可以在一定程度上记录自己。

  3).nametuple是Python中一个短小精悍的类。它是集合模块中的库函数,对于封装短类非常有用。让我们像访问属性一样访问类的内容。使用起来效率更高,更接近底层数组的效率,代码也容易阅读。

  4).序列化C结构。你应该熟悉英文单词struct,因为c/c里面有struct,这里struct叫结构。Python中也使用了Strut。Python只是使用Strut模块进行Python值和C结构之间的转换,从而形成Python字节对象。

  4.集合Python还有实现可变性和不变性的集合和多集合数据结构。

  1).集合集合对于去除重复元素非常有效,可以操作多个集合,比如取两个集合的交集,合并集合等等。

  2).不变的集合。由冻结集类实现的frozenset对象是静态的,只能查询其元素,不能插入或删除。

  3).多集Python标准库中集合中的计数器类实现了多集或包类型,这允许集合中的元素出现多次。是不是很神奇?让我们看一看。

  5.堆栈栈是非常重要的数据结构,支持快速后进/先出(LIFO)语义插入和删除。与列表或数组不同,堆栈通常不允许随机访问它们包含的对象。插入和删除操作通常也称为pushpop。Python的栈使用起来比C和C简单多了。

  2).双向队列Python的deque对象实现为双向链表,其操作与list非常相似。同时,与List实现的队列相比,deque实现具有更低的时间和空间复杂度。pop和insert中list的空间复杂度约为O(n),pop和append中deque的时间复杂度为O(1)。

  其实双向队列有很多神奇的作用,尤其是访问队列头尾的数据效率非常高,还支持很多队列的黑科技,比如逆时针旋转。

  3)并发排队当我们处理大量数据请求时,比如我们需要抓取大量网站的URL。有时候,我们会把挂起的请求扔到队列中,使用多进程或多线程进行并发处理。例如,队列经常在典型的生产者-消费者模型中使用。

  由于空间的限制,仍然有少量的数据结构没有被扩展。基本上Python的主要数据结构都在上面了。

  许多列出的数据结构没有被老的驱动程序使用。其实好的程序员在做项目的时候总是会考虑数据结构的。使用该数据结构可以节省内存并提高效率。

  这是一项艰苦的工作,需要在实战项目中不断的推敲和思考。好了,希望这个总结对大家有帮助。

  有热门推荐吗?1.超级Python IDE库概述。优缺点一目了然!2.Python的30个高频面试问题及详细回答。3.必备技能。学会这些招数,装成Pythonrydct4。4.哇!用Python读取CVS文件有五个窍门。据说对于菜鸟编程,90%的人只会做两招。现在已经正式上线了!接下来,我们将在微信官方账号上分享优质编程语言的有趣干货、通俗易懂的实战案例、经验分享,让菜鸟也爱上编程。在这里,获得新手福利。

  如何在CSS中设置div滚动条样式历史提交的图片或压缩文件

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: