Hello,大家好!在开始说新的内容之前,我们先来温故一下前面的知识点。前面我们提过for嵌套,那么大家是否知道我们在什么时候会用到for循环与嵌套呢?大家只要记住,只要在产生迭代对象的时候我们才可以用到for语句。For语句不同于while语句,while语句无论在什么时候都可以用。好了,不跟大家废话了,接下来为大家介绍的是列表。
一:列表(list)
1、列表是由一系列特定元素组成的,元素和元素之间没有任何关联关系,但他们之间有先后顺序关系。列表是一种容器(容器是计算机用来存储数据的东西),是序列的一种。而且列表可以是被改变的序列(可以增、删里面的数据)。
2、Python中的序列类型简介(sequence)
字符串 str
列表 list-
元组 tuple
字节串 bytes
字节数组 bytearray
3、 列表的创建方法(列表里面什么东西都可以放)
L = [ ] # L绑定空列表
L = [1,2,3,4] # L绑定非空列表
L = [‘北京’,’上海’,’重庆’]
L = [1,’three’,3,’四’]
L = [1,2,[3.1,3.2,3.3],4]
4、列表的构造(创建)函数list
List() 生成一个空的列表,等同于[]
List(iterable) 用可迭代对象创建一个列表
示列:
L = list( ) L 为空列表
L = list(‘ABCD’) # L ->[‘A’,’B’,’C’,’D’]
L = list(range(1,10,2)) # 用可迭代对象创建一个列表,起始值是1,终止值是10,步长是2
二:列表的运算
1、算术运算:+ += * *=
+:用于拼接列表:如
X = [1,2,3]
y = [4,5,6]
z = x + y # z = [1,2,3,4,5,6]
+=:用于原列表与右侧可迭代对象进行拼接,生成新的列表
x = [1,2,3]
x += [4,5,6] # x = [1,2,3,4,5,6]
x += ‘ABC’ # ?
*:生成重复的列表
X = [1,2,3] * 2 # x = [1,2,3,1,2,3]
*=:用于生成重复的列表,同时用变量绑定新列表
x = [1,2]
x *= 3 # x = [1,2,1,2,1,2]
三:列表的比较运算
1、运算符: >= == !=
比较规则与字符串一样,第一个与第一个比较,第二个与第二个比较
X = [1,2,3]
y = [2,3,4]
x != y # True
x > [1,2] # True (在x里面有第三个数,[1,2]没有,所以x大)
x
[1,3,2] > [1,2,3] # True (第一个列表的第二个数大于第二个列表的第二个数)
[‘AB’, ’CD’] > [‘AC’, ‘BD’] # False (第一个列表的字符串的B小于第二个字符串的C)
[1,’two’] > [‘two’, 1] # TypeError (报错了,数字和字符串是不能比较的)
四:列表的in /not in
作用:判断一个数据元素是否存在于容器(列表)内,如果存在返回True,否则返回False。
Not in 的返回值与 in运算符相反(存在返回False,不存在,就返回True)
示列:
X = [1, ‘two’, 3.14, ‘四’]
1 in x #True
2 in x #False
3 not in x #false
五:列表的索引
1、语法:列表[整数表达式]
2、用法:列表的索引取值与字符串的索引取值规则完全相同。列表的索引分为正向索引和反向索引。
3、示例:
L = [‘A’, 2, ‘B’, 3]
Print(L[1]) # 列表的索引和字符串一样,从0开始取,第一个数是2
X = L[2] # x = ‘B’
六:列表的索引赋值
1、列表是可变的序列,可以通过索引赋值改变列表中的元素
2、语法:
列表[索引] = 表达式
L = [1,2,3,4]
L[2] = 3.1415926 #改变了列表y第三个元素的值
七:列表的切片
1、列表[:]
列表的[::]
列表的切片取值返回一个新列表,规则等同于字符串的切片规则
示列:
X = list(range(9))
y = x[1:9:2] # y = [1,3,5,7]
2、列表的切片赋值语法:
列表[切片] = 可迭代对象
说明:切片赋值的赋值运算符的右侧必须是一个可迭代对象(开始值和终止值相同的时候,是往里面添加数据)
示例:
L = [2,3,4]
L = [0:1] = [1.1, 2.2]
Print(L) # [1.1, 2.2, 3, 4]
L = [2, 3, 4]
L[:] = [7, 8]
L = [2, 3, 4]
L [1:1] = [2.1. 2.2] # L = [2, 2.1, 2.2, 3, 4]
L = [2, 3, 4]
L [0:0] = [0, 1] # L = [0, 1, 2, 3, 4] (从列表的开头,下标为索引0的地方,把0和1=添加进去)
L = [2, 3, 4]
L [3:3] = [5,6] # L = [2, 3, 4, 5, 6] (在列表的未尾添加5和6)
L = [2, 3, 4]
L [1:2] = [] # L = [2, 4] (删除列表中第二个元素3)
3、切片步长不为1的切片赋值
L = list(range(1, 9))
L[1::2] = [2.2, 4.4, 6.6, 8.8]
案例分析:定义一个列表,列表值为可迭代对象(0~9),然后从下标为1的地方切,步长是2(每走两步,用2.2,4.4,6.6,8.8替换原列表里面的值)。最后结果如下图所示:
4、切片的注意事项:
对于步长不等于1的切片赋值,赋值运算符的右侧的可迭代对象提供元素的个数一定要等于切片切出的段数。
示例:(猜猜看,列表L的值是什么)
L = [1,2,3,4,5,6]
L[::2] = ‘ABC’
Print(L)
八:删除列表元素
1、 del语句用于删除列表元素
2、 语法:
del 列表[索引]
del 列表[切片]
示例:
L = [1,2,3,4,5,6]
del L[0] è L = [2,3,4,5,6]
del L[-1] è L = [2,3,4,5]
九:python3常用的序列函数:(除之前讲过的len\max\min外加上下面的)
sum(X) 返回序列中所有元素的和(元素必须是数值类型)
any(x) 真值测试,如果列表中其中一个值为真值则返回True,否则返回False
all(x) 真值测试,如果列表中所有值为真值,则返回True,只要有一个为假,则返回假
十:练习
已知有列表:L = [3,5],用索引和切片操作,将列表改为:L = [1,2,3,4,5,6],将列表反转(前后对调),然后删除最后一个元素。
写一个程序,让用户循环整数,当输入-1时结束输入,并将这些整数存在于列表L中,打印输出有效的数,找出最大值和最小值并输出,最后求出这些数的平均值是多少?
尾声:这就是我们今天所讲的列表list,大家下去以后要多多练习哦!如喜欢小编的干货,请互关、加粉和评论,编一定会创造更加优质的内容与大家分享!谢谢!
领取专属 10元无门槛券
私享最新 技术干货