列表
列表是可以存放任何数据,包括整型,浮点型,字符串,布尔型等等,是常用的数据类型之一。
1.列表的创建
列表也是一个可迭代对象
1. 普通形式
l = [1,2,3,4,5] ---整型列表
l = ["a","b","c"] ---字符串列表
l = [True,False,1>2,5<6]---布尔列表
2. 混合列表
l = [1,2.5,"a",True]
3. 空列表
l = []
- 从列表中如何获取数据(元素)
列表是有下标的,并且下标从0开始,元素是指列表中每个数据,例如l = [5,4,3,2,1] 里面有5个元素,但5的下标为0,1的下标为4。
1.获取当个数据(元素)
语法:
变量[下标] #获取下标所对应的值
例如获取l列表中下标为1的元素:
l = [1, 2, 3] # 下标/索引:0开始
print(l[1])
执行结果为:
2
2. 列表的遍历
列表的遍历是把列表里面的所有元素都获取1遍。
例如把[1,2,3,4,5]里面的元素都获取并输出一遍:
l = [1,2,3,4,5]
for i in l:
print(i, end=" ")
执行结果为:
1 2 3 4 5
3. 交换数据
对指定下标的元素进行数据交换。
例如把[1, 2, 3, 4, 5]里面的下标为第2和第3的元素进行数据交换:
l = [1, 2, 3, 4, 5] # 下标/索引:0开始
l[2], l[3] = l[3], l[2]
print(l)
执行结果:
[1, 2, 4, 3, 5]
2.添加元素
添加元素的方法常用的有以下3个:
统一用法是:
变量.函数
#例如 n. append(对象)
例子:讲列表[6,7]添加到另一个列表[1,2,3,4,5]中
l = [1, 2, 3, 4, 5]
l.extend([6, 7])
print(l)
执行结果:
[1, 2, 3, 4, 5, 6, 7]
3.删除元素
删除列表中的元素的常用方法主要有:
例子:删除列表[1, 2, 3, 4, 5]中4这个元素。
l = [1, 2, 3, 4, 5]
l.remove(4)
print(l)
执行结果为:
[1, 2, 3, 5]
4. 修改元素
修改列表中的元素方法其实很简单,直接用这个方式就可以了:
变量[下标]=新值
例如:
l = [1, 2, 3, 4, 5]
l[2]=6
print(l)
执行结果:
[1, 2, 6, 4, 5]
5.列表高级特性的
- 切片操作
切片,顾名思义就是把1个列表切分为多个列表,语法如下:
变量[起始下标:结束下标] #结束下标取不到
例如
l = [1, 2, 3, 4, 5]
print(l[0:4])
执行结果:
[1, 2, 3, 4]
做切片操作时要注意以下几个点:
①如果下标从0开始可以省略不写,例如 n = l[:4]
②如果结束下标取的是最后一个元素,可以省略不写,例如 n = l[3:]
③如果列表中的元素都要,开始和结束下标都可以省略,例如 n = l[:]
④n = l[:-1] 表示从0开始 - 到数二个元素
- 列表的进阶操作
方法是 n = l[开始:结束:步长] ,这个方法既可以正向去操作列表,也可以反向去操作列表,例如:
l = [1, 2, 3, 4, 5]
n = l[-1:-3:-1]
print(n)
执行结果:
[5, 4]
- 列表的一些操作符
- 比较运算符
列表之间进行比较,以相同下标进行比较,从小到大进行比较,如果值相同则比较下一组元素,如果不同直接出结果,例如:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 下标/索引:0开始
l2 = [2, 3, 4, 6]
print(l < l2) # True
执行结果:
True
- 逻辑运算符
逻辑运算符and not or 跟比较运算符相似,返回结果都是布尔值(True/False),这里可以去自己尝试一下。
- 拼接运算符
拼接运算符是 + ,常用来进行两个列表拼接,例如:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 下标/索引:0开始
l2 = [2, 3, 4, 6]
print(l + l2)
执行结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 6]
- 重复操作符
重复操作符为 * ,后面常跟数字,表示将列表里面的元素重复复制几遍,例如:
l2 = [2, 3, 4, 6]
print(l2*2)
执行结果:
[2, 3, 4, 6, 2, 3, 4, 6]
- 成员关系操作符
成员关系操作符主要有 in和not in,用来判断元素是否在列表中,返回结果是布尔值,例如:
l = [2, 3, 4, 6]
print(5 not in l) #输出“5不在列表l中”这句话的真假
执行结果:
True
- 列表的其他方法
列表常用的其他方法还有以下几个:
例如:将列表里面的所有元素进行翻转
l = [2, 3, 4, 6]
l.reverse()
print(l)
执行结果:
[6, 4, 3, 2]
- 冒泡排序法
冒泡排序是列表里面比较有名的排序方法之一,例如将列表[5,4,3,2,1]里面的所有元素用冒泡排序的思想进行从小到大排序。
l = [6, 5, 4, 3, 2, 1]
for i in range(1, len(l)): # 1,5 #循环4大次 4
for j in range(len(l) - i):
if l[j] > l[j + 1]:
l[j], l[j + 1] = l[j + 1], l[j]
print(l)
执行结果:
[1, 2, 3, 4, 5, 6]
- 选择排序
选择排序是让列表中的元素,固定一个元素和其他元素进行比较,不符合条件互换位置。
l = [6, 5, 4, 3, 2, 1]
for i in range(0, len(l) - 1): # 0,4
for j in range(i + 1, len(l)): # 1,5
if l[i] > l[j]:
l[i], l[j] = l[j], l[i]
print(l)
执行结果:
[1, 2, 3, 4, 5, 6]
- 二维列表
列表里面还能存放多个列表,由比如列表 [[1,2,3],[4,5,6],[7,8,9]] ,它是由两个维度的列表组成,1个维度是它本身,另一个维度是[1,2,3],[4,5,6],[7,8,9] 这三个列表,所以构成了二位列表。
对于二位列表,语法是:
变量[外层列表下标][内层列表的下标]
例如输出二位列表中的第一个列表里面的下标为1的元素:
l = [[1,2,3],[4,5,6],[7,8,9]]
print(l[0][1]) #2
执行结果为:
2
在这里我们可以看得出来,二位列表里面的外层列表也有下标,下标也是从开始。
我们再来对二位列表进行遍历:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in l:
for j in i:
print(j)
执行结果:
1
2
3
4
5
6
7
8
9