01 如何选择合适的数据结构?为什么这很重要?
编程语言中的数据结构是用来整理和存储数据。数据结构自身内部就定义了很多方法用来处理数据,不同的数据结构拥有不能的优势,这篇文章就大概的过一遍Python中非常重要的数据结构。
首先,一定要明确一点,数据结构的选择是基于对数据和项目最终目的的整体考量。不合适的数据结构可能会导致更长的处理时间、更多的内存占用等等。
02 Python中的数据结构Python中用途最广泛的数据结构有以下几种:
tuplestrrangelistdictset我们一起来过一遍tuple和set使用方法吧!
tuple 元组tuple这个数据结构是被小括号包围的一组数据,并且它有一个重要的属性,
一旦被定义,不可以被更改
。tuple元组的定义
图1
如图1所示,我们定义了两个变量a和b,至于区别只是b的数据后面加了一个逗号。如果不加逗号,a的 数据类型被定义成了整数型。加了逗号,Python则会默认将数据类型设置为tuple。在图2中,展示了几种常用的定义tuple的方法。
图2
tuple内数据的调用图3
len()函数可以返回tuple数据结构中一共有多少个数据,我们注意到tuple数据结构中并不需要所有的数据格式是一样的。使用print()将tuple元组的数据个数打印出来,并且通过a[i]的形式调用每一个数据。
a[i]中的下标i是从0开始的,也就是说a中的1,2,‘逃学博士’分别对应的下标为0,1,2。
tuple数据一旦创建,无法更改
继续拿a举例,如果我们想要改变tuple a中的数据,比方说a[0],我们是不是可以这么做呢?
图4
我们试图将数值5赋值给a[0],但是系统报错显示tuple不支持赋值,也就是a[0]无法被修改。这也是tuple最重要的属性之一,tuple的好处就是数据安全性高。
tuple数据一旦创建,真的不能修改吗?
其实,tuple的数据无法修改也不是百分之百的。如图5
图6
a中的最后一个数据为list,a[2][0]则会指定为‘逃学博士’。如果对a[2][0]进行赋值,我们发现tuple 元组a的数据变了。原因在于我们无法直接赋值给a[2],因为a[2]是元组a的数据。但是,a[2]是一个list,而list的数据是可以被修改的,因此调用a[2][0]是可以直接修改list里面的内容。
集合 set集合set是用大括号将数据包裹起来,如图7所示。
图7
那么,集合set最重要的属性是什么呢?集合set中是无法包含重复的数据。如图8,我们先定义一个list [1, 2, 3, 4, 1, 2, 3]。其中1, 2, 3是重复出现的。如果有一个项目需要我们去查找这个数据中一共出现的多少个数据,不包括重复的,就可以用到set集合了。
图8
向集合set中添加和删除数据是被允许的。添加数据使用add()函数,删除函数使用remove()函数。
图9
图9中,我们给集合b添加了两次数据5。但是,由于set无法拥有两个重复的数据。因此,第二次被忽略了,而且系统不会报错。
图10
调用remove()函数,我们第一次调用去掉了集合b中的数字5。但是第二次调用remove()系统显示报错,这是因为集合b中这时候已经没有我们要去除的5了。
总结数据结构还有很多,集合set和元组tuple中的调用方法也还有很多。这篇文章想说的是几个要注意的比较有意思的点。谢谢大家耐心的看完。
1.《python数据结构 一文搞定Python数据结构tuple和set》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《python数据结构 一文搞定Python数据结构tuple和set》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/347759.html