2.3 数据类型
Python数据类型
刚才已经为大家介绍了两种非常常见的基本数据类型:数和字符串。在Python中,还有很多常见的自带数据类型,比如列表、元组、集合、字典等。在这一节中,将为大家讲解各种常见的数据类型及应用实例。
2.3.1 各种数据类型
如果大家学习过其他语言,想必应该知道数组的概念。在Python中,默认是没有数组的,Python中与数组最接近的概念就是列表和元组,先说列表。
列表就是用来存储一连串元素的容器。列表用[]来表示,比如,一个班里面有30个学生,需要将30个学生安排到一间教室里面上课,如果把30个学生分别比作元素,那么这个教室就是数组。30个学生是按座位坐好的,有序排列的,数组中的元素也是有序排列的。
Python中与数组类似的除了列表之外还有元组。
除此之外,Python还拥有集合、字典等数据类型,将一起在2.3.2小节中为大家呈现。
2.3.2 Python数据类型应用实例
上面已经初步认识了Python中的各种数据类型,接下来将逐一通过实例进行介绍。
1. 列表
假如一个班级里面有小明、小华、小李、小娟与小云几位同学,并且按顺序排列,这时就可以将这几位同学放到一个列表中。此时希望能够取出序号为3的同学,则可以通过取下标[3]实现。值得注意的是,在列表中,下标默认是从0开始编号的。
定义一个列表可以使用这种格式进行:
列表名=[元素1,元素2,元素3]
如下所示,可以将上面的事情写成如下程序:
#列表 students=["小明","小华","小李","小娟","小云"] print(students[3])
此时程序的输出结果为:
小娟
也就是说,当前的序号为3的同学为小娟同学。
那么,如何更改列表里面的元素呢?
比如,班里面又来了一个学生小月,而小李退学了,班主任决定把小月调到小李的位置,此时,需要将列表里面的“小李”这个元素对应位置的值替换成“小月”,可以通过以下代码实现:
#列表元素的替换 students=["小明","小华","小李","小娟","小云"] print(students) students[2]="小月" print(students)
执行结果为:
['小明', '小华', '小李', '小娟', '小云'] ['小明', '小华', '小月', '小娟', '小云']
可以看到,通过以下方式就实现了对应元素的替换:
列表名[下标]=新元素值
此时,小月已经成功调到了小李的位置。
2. 元组
Python中与数组类似的除了列表之外还有元组。元组里面的元素进行的是索引计算。但是列表跟元组有什么区别呢?
区别一:列表里面的元素的值可以修改,而元组里面的元素的值不能修改,只能读取。
区别二:列表的符号是[],而元组的符号是()。
比如,一个小组内有小明、小军、小强、小武和小龙等人,该组内的成员关系非常好,不允许其他人取代他们之中任何一个人的位置,那么可以将这几位同学组建为一个元组,如下所示:
#元组 students=("小明","小军","小强","小武","小龙") print(students) print("第1位成员是:"+students[0])#正常排序从1开始排,而列表元素从0计数 #故而第一位(当然按照习惯不同,也可以称为第0位)成员是下标为0的元素
程序的执行结果如下:
('小明', '小军', '小强', '小武', '小龙') 第1位成员是:小明
可以看到,此时已经成功定义了元组并取了元组的第0个元素。
从上面的程序中可以知道,如果需要定义一个元组,格式如下:
元组名=(元素1,元素2,元素3,…)
而如果需要去除元组中的某个元素,同样可以使用[下标]的方式进行。
上面已经学会了如何定义元组,刚才也已经初步提到,元组中的元素是不可以替换的,比如,可以尝试将上面元组中的小军的位置替换成其他人,就会发现程序的执行会出错。代码如下所示:
#这样做会出错,因为元组里面的元素不能替换 students=("小明","小军","小强","小武","小龙") students[1]="小海" print(students)
程序的执行结果中出现错误:
Traceback (most recent call last): File "D:/Python35/tests.py", line 3, in <module> students[1]="小海" TypeError: 'tuple' object does not support item assignment
结果中提示,元组类型里的数据不能被替换,这一点跟列表是有区别的。
3. 集合
Python中集合的概念与高中时数学课上数学集合的概念类似。集合最重要的特点是,集合里面不允许存在重复的元素。
Python中的集合主要有两个功能,一个功能是建立关系(即将某些元素放在一起构成一个组,元素与元素之间就成了组内成员关系),另一个功能是消除重复元素。
如果需要在Python中创建一个集合,格式如下:
set(所有元素)
比如,希望创建一个包含字母a、b、c、d这4个元素的集合,可以通过如下代码实现:
>>> set("abcd") {'c', 'd', 'a', 'b'}
可以看到,此时已经生成了一个集合{'c', 'd', 'a', 'b'}。除此之外,也可以通过另一种方式创建一个集合,格式如下:
集合名={元素1,元素2,元素3,…}
比如,如果想创建一个包含5、“python”“php”这3个元素的集合,可以通过如下代码实现:
>>> a={5,"python","php"} >>> a {'python', 'php', 5}
可以看到,此时已经成功生成了集合{'python', 'php', 5}。
同样,在Python中,集合也可以进行交集、并集、差集等运算,如下所示,关键部分已给出注释:
a=set("abcnmaaaaggsng") b=set("cdfm") #交集,可以通过&符号实现交集运算 x=a&b #并集,可以通过|符号实现并集运算 y=a|b #差集,可以通过-符号实现差集运算 z=a-b print("集合a是:"+str(a))#因为集合不能直接进行字符串连接,所以需要强行转换为字符串 print("集合b是:"+str(b)) print("a与b的交集是:"+str(x)) print("a与b的并集是:"+str(y)) print("a与b的差集是:"+str(z))
上面的程序执行结果如下:
集合a是:{'m', 'n', 'b', 'g', 'a', 's', 'c'} 集合b是:{'m', 'd', 'c', 'f'} a与b的交集是:{'m', 'c'} a与b的并集是:{'m', 'n', 'b', 'f', 'g', 'a', 's', 'd', 'c'} a与b的差集是:{'a', 'g', 'n', 's', 'b'}
可以看到,上述程序已经成功实现了交集、并集、差集等运算。
假如现在有一些数据,里面可能会存在重复的数据,而此时希望将重复的数据过滤掉,即任何数据最多只能出现一次,那么可以使用集合来实现,因为集合有非常好的去重功能。
例如有一串数据元素,如下所示:
"python","php","android","python","android","aspx","php"
现在需要将上面重复的数据去除,那么可以通过以下程序实现:
#去除重复元素 new={"python","php","android","python","android","aspx","php"} print(new)
执行结果如下:
{'python', 'aspx', 'android', 'php'}
执行结果中,重复的数据已经成功过滤掉,就是运用集合里面的元素不能重复这一个特性实现的。
4. 字典
Python中的字典也叫作关联数组,用大括号{}括起来。例如如下代码:
zidian={'name':'weiwei','home':'guilin','like':'music'}
可以这样理解:字典里面其实包含的是整个事情,这个事情里面包括各方面的具体信息。比如刚才这个,包含了name、home、like方面的具体信息,其中name方面的值为weiwei,home方面的值为guilin,like方面的值为music。
一般来说,字典元素里面,:左边的部分称为key(键),:右边的部分称为该键对应的value(值),所以字典格式的定义,可以抽象为如下所示:
字典名={键1:值1,键2:值2,键3:值3,…}
如果需要取字典里面的某个元素,通过这种格式即可:
字典名[键名]
比如,已知老师的姓名为韦玮,籍贯为桂林,可以将这些信息存储到一个字典中,如下所示:
#字典 k={"姓名":"韦玮","籍贯":"桂林"} print(k) print("籍贯是:"+k["籍贯"])
程序的执行结果如下:
{'姓名': '韦玮', '籍贯': '桂林'} 籍贯是:桂林
可以看到,此时已经成功定义了该字典,并且成功取出了该字典中的籍贯所对应的元素值。
如果想在字典中添加新的元素,可以通过如下格式进行:
字典名["新键名"]=值
比如,在刚才的信息中,又得知了老师的爱好为音乐,如果想将爱好信息添加到原来的字典中,完整的程序如下:
#字典 k={"姓名":"韦玮","籍贯":"桂林"} print(k) print("籍贯是:"+k["籍贯"]) #添加字典里面的项目 k["爱好"]="音乐" print("姓名为:"+k["姓名"]) print("爱好为:"+k["爱好"])
程序的执行结果如下:
{'籍贯': '桂林', '姓名': '韦玮'} 籍贯是:桂林 姓名为:韦玮 爱好为:音乐
可以看到,此时的爱好信息已经添加成功。
在Python中,常见的数据类型主要就是这些,在未来的学习过程中,会逐渐接触更多的数据类型,同时,未来也会学会如何定义自定义数据类型。