初级Python之组合数据类型分类总结
引言
今天我开始了第一天对Python知识点的深度整理工作,应该是处于一个边梳理边学习边分享的状态吧。若出现任何错误,希望各位博主大大不吝赐教,也欢迎大家踊跃在下方评论,在讨论*同进步。
我发现,在很多的教材上,作者习惯于将字符串呀,元组呀等等概念及用法一股脑地塞给读者,而往往忽略了各个数据类型之间用法的重叠以及不同之处的区分。这样带来的结果往往是:初次接触编程的读者在读完这一章后可能会出现思维上的混乱。什么概念是两个数据类型共同享有的,什么方法这个数据类型能用而那个数据类型不能用往往是令我们这些凡人头晕目眩的地方。今天,我所做的第一个步骤是参考北科大嵩天教授的一本Python3教材对字符串,元组,列表,集合,字典等组合数据类型进行一个大体框架的梳理,后续更新的博文会对这些概念进行详细地学习和整理。
组合数据类型是什么
首先,什么是组合数据类型?似乎在C语言等其他编程语言的学习过程中我们从未接触到有关于它的系统概念,那么通过百度组合数据类型这个关键词我们发现这个概念是和Python这门语言捆绑在一起的,所以我觉得有必要对其进行一个批注。在实际的应用过程中,尤其是当今的大数据时代,我们通常要面对的并不是单一变量,单一数据,而是大批量的数据,若将眼前众多的数据进行逐一处理显然不能满足我们的高效性,那么将众多数据罗列起来,用一条或者多条Python语句对其进行批量化处理,必然会大大提高运行效率,简化我们的开发工作。组合数据类型正是满足了我们这样地一个需求,应运而生。回过头来,不管是字符串,还是元组、列表、集合、字典等等,它们只是类型不同,亦即给我们提供的箩筐不同而已,但是它们的共性是都属于组合数据类型,都是为了将数据系统罗列以便于我们进行大批量处理。有人说,这不是和C语言中的数组一样吗?我觉得有必要强调的一点是,C语言提供的数组其中存储的是基本数据类型相同的变量,int类型的数组内部存储的都是int类型的变量,float类型的数组内部存储的都是float类型的变量;而Python提供的组合数据类型则更为方便宽泛,它可以为多个同类型或不同类型的数据提供单一表示,我觉得这样的一个不同点是Python令我们眼前一亮也是值得我们去使用的一点。
组合数据类型的分类框架
啰里吧嗦说完组合数据类型,接下来我想做的是对这么组合数据类型中的概念进行一个简单分类:
首先,组合数据类型包括三大类,分别是序列类型、集合类型、映射类型;
我们再进行细分:
序列类型包括字符串,元组,列表;
集合类型包括集合;
映射类型包括字典。
序列类型、集合类型与映射类型
Python对于序列类型、集合类型以及映射类型都提供了大量的可直接调用的方法,详细的各类方法的使用我会在后续更新的博文中进行解释,这里我们简单地对三者留下一些印象。值得一提的是,这三者在我们的高中数学中都有对应的数学模型,大家可以在脑海中进行一一对应。
序列类型:序列对应于数学中的数列,它是一串有序的元素向量,当我们想要锁定数列中的某一个数值时,通过下标索引便可以准确地找出我们所需要的那个值。 序列类型相比于集合类型在实际应用中使用频率更高。通用的序列操作,即字符串、列表 、元组都可以进行的操作,诸如索引、分片、序列相加、乘法、成员资格、长度、最小值、最大值等方法后面都会进行举例说明。 集合类型:集合类型中的元素存在无序性,无法通过下标索引锁定集合类型中的每一个数值,且相同元素在集合中唯一存在。非常值得我们注目的一点是:集合中的元素类型只能是固定的数据类型,即其中不能存在可变数据类型。固定数据类型诸如整数、浮点数、字符串、元组等可以作为集合中的存储元素;而由于列表、字典以及集合类型的可变性,它们不可作为集合中的数据元素。集合类型与其他类型的最大的不同之处在于它不包含重复元素,因此,当面对一维数据进行去重或进行数据重复处理时,一般通过集合去完成。 映射类型:在数学中,我们由映射这个概念引出数学函数,即变量x通过一定的表达式可以得到它所对应的y。映射类型的典型代表是字典,我们知道,当我们使用字典时,只需要查字典前面的关键词即可找到该关键词对应的内容,Python中的字典正是运用了这样一个道理。因此映射类型是键值对的集合,也存在无序性,通过键我们可以找出该键对应的值,换一个角度来讲,键代表着一个属性,值则代表着这个属性代表的内容。
后续:有关序列,集合以及映射的方法,字符串、元组、列表、集合、字典也会在后续的博文中逐一细细介绍。 总结一下第一天的写博文感受:写博文是一件很累、很耗时间但是挺有自豪感的事情,写一篇有内容的博文需要自己先对想要学习、介绍的内容在脑子里先有一个简单的思路轮廓,然后再组织好语言将其一点一滴地组合起来。期间也会遇到自己模糊不清的概念通过查询大量他人的资料把它们弄懂。我希望每天都有条件可以给自己腾出这样一点时间进行自我充电和分享。凡事贵在坚持,不被生活的浪潮冲垮内心的追求吧还是,希望和各位同仁们共勉!
下一篇: 如果AlphaGo成功约战柯洁会怎样