本节我们接着讲list类型:
这个系列教程建议对照着视频学习,以下仅为课件内容。
本节课程的视频和实例源码下载方式:点击->我的主页,查看个人简介。
我尽量坚持每日更新一节。
列表是python中非常常用的一个数据结构,它的语法如下:
[item1, item2, item3, …]
由中括号将所有列表元素括起来,不同的元素之间通过逗号分隔。
列表中的元素item,支持几乎所有类型的数据,并且同一个列表中的所有元素可以是不同的数据类型。所以列表使用起来会非常灵活。用过C语言数组结构的同学应该知道,数组结构只能存储同一类型的元素,比如整型数组、字符串数组等等。另外,C语言的数组结构一旦初始化之后,是不能动态扩容的。C语言也可以实现列表功能,但它不是C语言的标准数据类型。相比较起来,Python的数据类型要强大和灵活得多。
列表本质上是一种序列,前面我们学习的string字符串本质上也是一种序列,还有下一节的tuple元组也是序列。我们来看看序列都有一些什么样的共性呢?
- 序列具备索引,正向索引和反向索引,前面字符串截取时我们学习过。
- 序列都支持切片(分割、截取)。
- 序列具备一些通用的操作(加、乘、检查成员)
通过下来的例子我们演示列表的常用操作:
# author: Tiger, wx ID:tiger-python
# file: ./5/5_5.py
"""
演示列表的操作
"""
# list 列表
list_1 = ['hello', 100, ['跟我一起学', 4]] # 支持不同类型的item,可以嵌套list
list_2 = ['python', '!']
print(list_1[0:2]) # 截取的方式和字符串一致
print(list_1[0:-2])
print(list_1[0: 1])
print(list_1[0])
print(len(list_1)) # 获取列表的长度
# 列表连接
list_3 = list_1 + list_2
print(list_3)
# 使用乘法让列表重复n次
list_4 = list_2 * 3
print(list_4)
# 判断一个元素是否存在于列表中
print('python' in list_2) # True
# 判断一个元素在列表中出现的次数
print(list_4.count('python'))
# 获取列表中最大最小值,求和
list_5 = [1, 2, 4, 10, 90]
print(max(list_5))
print(min(list_5))
print(sum(list_5))
# 列表的增删改操作
list_5.append(100) # 在列表尾增加元素100
print(list_5)
list_5.insert(1, 'insert_obj') # 把元素插入到索引为1的位置
print(list_5)
list_6 = ['hello', 'python']
list_5.extend(list_6) # 在列表后面追加另外一个列表
list_5[0] = 200 # 将索引为0的元素修改为200
print(list_5)
del list_5[0] # 删除索引为0的元素
print(list_5)
list_5.pop(2) # 移除索引为2的元素,如果不填写索引值,则默认移除列表最后一个元素
print(list_5)
list_5.remove('insert_obj') # 移除一个元素,注意这里指定的是元素的值。如果列表中有多个相同的值,则只移除第一个匹配项
print(list_5)
list_5.clear() # 清空整个列表
print(list_5)
# 列表的排序操作
list_7 = [100, 99, 27, 198, 3]
list_7.reverse() # 列表反向排列
print(list_7)
list_7.sort() # 列表升序排列
print(list_7)
list_7.sort(reverse=True) # 列表降序排列
print(list_7)
由于同一个列表可以支持不同的元素,所以某些列表操作会有一些限制,大家在使用时需要注意。比如一些数值操作,如sum(list),它就无法支持list中包含字符串的情况,因为字符串没法求和。一个比较特殊的操作,最大值max和最小值min,它们支持字符串的比较,那么它们是按照什么规则来比较大小的呢?我们通过一小段代码测试一下。
# author: Tiger, wx ID:tiger-python
# file: ./5/5_6.py
# max\min 如何比较字符串列表
list_1 = ['a', 'b', 'cat', '跟我一起学python']
print(ord('a'), ord('b'), ord('c'), ord('跟'))
print(max(list_1))
print(min(list_1))
可以看出,对于字符串列表,是按照元素的首字符对应的ASCII编码值来比较大小的(参考字符编码章节)。如果同一个列表中混杂了数字和字符串,则无法比较,会抛出异常。
列表是python中用得最多的标准数据类型,后面我们在讲循环语句时还会介绍如果对列表进行迭代操作。大家应该对列表操作勤加练习,熟能生巧。
好了,下节我们继续学习python的其它数据类型。
本节课程的视频和实例源码下载方式:点击->我的主页,查看个人简介。
我尽量坚持每日更新一节。