Python语言基础——数据结构基础
前言
数据结构是计算机科学中一种基本概念,其目的是确定数据元素之间的关系,实现数据的组织、存储和管理。了解和掌握常见的数据结构可以让我们更好地处理和管理数据
数据结构基础
数据结构就是用来存放数据的容器。数据应该按着某种规则放进这个容器,并且按照某种规则从容器中取出数据。
列表
顺序结构——列表
列表是顺序结构中的一种,而且列表中的每个元素最多只有一个前驱和一个后驱。列表的语法如下:
[ 元素1,元素2,……,元素N]
列表中的方括号和逗号都是半角符号,如果用了全角符号,python的解释器会报错
列表中的元素可以是相同的类型,也可以是不同的类型。
当往列表中放入数据的时候,python用”索引“来标记要放入的位置。可以这样理解索引,就是给每一个存放数据的位置写了一个数字,而且是从0开始。
例如要把”苹果“放入列表list的0号位置,在python里这样表示:
同样,从列表中取出元素的时候也适用索引。
如果要连续获取几个元素,需要使用如下的切片运算符:
连续获取多个元素 list[1:3] 切片运算符 : 切片运算符,运算的时候如下的list[1:3] 是不包括最后的元素的 也就是 list[1] 和 list[2] 不包括list [3]
字典
映射结构——字典
映射结构就是把一个值映射到另一个值的结构。
python中的字典就是一个映射结构,与手机通讯录很相似。我们查通讯录的时候是按姓名来查找的,即通过名字找到这个人的手机号码,姓名与手机号码是一一对应的。值得注意的是,python字典是一个特殊的通信录,因为它不允许里面有两个人的名字是相同的。
python的字典由”键“和”值“构成,其中”键“表示查找的依据,而”值“表示查找的结果。
python字典的语法为:
{key1:value1,key2:value2……}
元组
元组和列表相似,列表的大部分方法在元组上也可以使用,只是元组是不可以修改的。创建列表的语法是使用方括号,而创建元组的语法是使用圆括号。
元组 大体上和列表差不多 但是元组是不可以修改的
字符串
字符串是一类特殊的字符集合,由单个或者多个字符组合而成,其长度可以由python的len方法获取。
在字符串里,通常使用索引来识别字符所在位置。第一个字符的索引值为0,最后一个字符的索引值为-1.
算术运算符
//求整除数,计算两个整数相除的整数值
如 5/2 = 2
比较运算符
逻辑运算符
python常用控制结构
if、else、elif条件语句
if语句的作用是,如果满足设置的条件,则执行后续的代码块。
在判断语句中,空列表、空元组、空字典、数字0、空字符串(“”)都会在判断条件中被自动转换为布尔值False
为了更加直观地表达条件语句,可以为if语句增加一个配套的else子句,其含义是当if语句后的判断条件成立时,执行if后的代码块,当判断条件不成立时,执行else语句后的代码块。
当有多个条件需要判断的时候,可以使用python中的elif语句。elif是else if的缩写
for循环语句
在python中经常需要遍历列表和字典中的元素。例如,查看哪些元素是偶数,检查电话号码是否格式正确等。这时需要用到一个名为for循环的控制结构。
while循环语句
在python中,当在满足某个条件的前提下,循环执行某个代码块时就需要用到while循环语句。while循环语句的语法与if语句是类似的。当判断条件的结果为True时,才会执行后续的代码块。
range()函数
python中可以利用range(N)函数实现重复执行某个操作N次。若只给range()函数传入一个参数,range()函数将生成0到N的数字序列
跳出循环
一般来说,循环会不断执行代码块,直到某个条件满足为止。但是有时希望中断循环或者跳出某一次循环,这就需要使用break或者continue语句
break语句可以直接跳出循环,结束循环。continue语句可以实现结束当前循环,直接进入下一次循环的功能。
a = 10 while (a > 5): a = a - 1 if(a % 2 == 0): continue print(a)
函数和类
函数
对于一个需要多次使用某个方法的程序,如果在程序中重复编写这个方法,将会导致程序可读性不高。在这种情况下,可以引入函数进行python编程。函数是在一个程序中可以重复使用的代码块,并且这组代码块可以实现一个独立的功能。在定义好函数后,该函数就可以在程序中任意需要的位置被调用。
函数一般由函数名、参数、函数体、返回值组成,其中函数名和函数体是必须的。
函数可以没有参数,也可以有一个或多个参数。
类
类是面向对象的一个核心要素。在编译的过程中,对于有相同属性和方法的对象,为了避免重复定义,可以将这些对象归纳为一个类。类的基本结构
#编写水果类 class Fruit(): def __init__(self,name,color): self.name = name self.color = color def pickup(self,season): print("{}在{}季节收获".format(self.name,season)) Apple = Fruit("apple","red") Apple.pickup("秋天")
模块和包
模块是一个相对笼统的概念,可以将其看成包含变量或一组方法的python文件对象,或者多个python文件对象组成的目录。有了模块,一个python文件中的方法或者变量就可以被外部访问使用,而不仅仅局限于文件内部使用。因为有了模块,python对象的抽象和复用更为通用,而不同于模块放在一起就构成了一个package包。python如此流行,就是因为在python社区中有各种各样的包可以下载并直接使用,这些包可以用于完成数据处理、网络爬虫、网站建设、嵌入式编程、多媒体处理、人工智能等多种任务。
调用本地模块和包的基本格式为:
下面介绍一个使用random模块产生一组随机数,并存入列表的例子来展示模块的使用方法
总结
Python数据结构基础对于程序员来说非常重要,熟练掌握它们的用法可以提高开发效率、代码可读性和程序性能,是必须要掌握的基础知识。