*** 开始Python学习第六课***
从基础开始Python学习(4.24)第六课
python中的序列及操作
序列列表(list)及使用
for循环和range语句
一. Python中的序列及操作
1. Python中的序列
1.1 序列的概念
- 序列:是Python中最基本的⼀种数据结构。序列用于保存⼀组有序的数据,所有的数据在序列当中都有⼀个唯⼀的位置并且序列中的数据会按照添加的顺序来分配索引(依次添加)
- 数据结构:是指计算机中数据存储的⽅式
1.2 序列的分类
依据序列中元素是否可以进行更改和变化,序列可分为:
- 可变序列(序列中的元素可以改变):例如 列表(list)
- 不可变序列(序列中的元素不能改变):例如 字符串(str),元组(tuple)
二. 可变序列列表(list)
1. 列表(list)表示及使用
1.1 列表的表示
列表(list) :是Python中的⼀个对象,列表中可以保存多个有序的各种类型的数据,列表是用来存储对象的一种对象,列表通常使用中括号 '[ ]'的表示:
a = []
b = [1,‘python’,[1,2,3,‘python’],1.25]
a = []
b = [1,1.25,'python',[1,2.5,'python',[2,3]],(1,2),{1:'第一名','2':158}]
print(a)
print(b)
print(b[0],b[1],b[2],b[3],b[4],b[5])
print(b[3][3][1])
1.2 列表的使用
(1)列表的创建
在Python中,可以给变量赋予空列表或进行列表的定义
#给一变量赋予一个空的列表
a = []
#给一变量使用列表进行定义
c = list()
print(a,c)
(2)列表中值的访问
与字符串的索引一样,列表可以使用索引对列表中的值进行访问,也可通过索引对列表进行截取、组合等操作
#给一变量赋予一个列表
a = ['red', 'green', 'blue', 'yellow', 'white', 'black',1,2,3,4]
#使用索引对列表进行访问
print(a[0],a[1],a[2]) #使用正向索引值可依次访问列表的值
print(a[-1],a[-2],a[-3]) #使用反向索引值可依次访问列表的值
#使用索引对列表进行截取访问
print(a[0:4]) #使用正向切片索引值访问列表的值
print(a[0:6:2]) #使用正向切片索引值,设定取值长度访问列表的值
print(a[-4:-1]) #使用反向切片索引值访问列表的值
print(a[-1:-4:-1]) #使用反向切片索引值,设定反向取值可访问列表的值
#使用索引对列表进行访问后组合
print(a[0]+a[5]) #对其取值进行组合
(3)列表中值的增加
#给一变量赋予一个列表
a = ['red', 'green', 'blue', 'yellow', 'white', 'black']
b = [4,5,6]
#使用列表方法对列表进行增加
a.append(1) #append方法在此列表最后增加一对象,一次只能增加一个对象
print(a)
a.extend(b) #extend方法在此列表最后增加另一列表的所有值
print(a)
a.insert(3,7) #insert方法在此列表选的位置插入一对象a.insert(插入位置,插入对象)
print(a)
(4)列表中值的删除
#给一变量赋予一个列表
a = ['red', 'green', 'blue', 'yellow', 'white', 'black',4,5,6]
#使用函数对列表进行删除(del)
del a[1:2] #使用切片对列表中对象删除,del list[起始 : 结束:步长]
print(a)
#规定步长对列表中对象删除,del list[起始 : 结束:步长]
del a[1:4:2] #当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致
print(a)
#使用列表方法对列表进行增加(pop,remove,clear)
print(a.pop()) #pop方法在此列表删除,默认删除最后一位
print(a)
print(a.pop(1)) #pop方法在此列表可根据索引删除,并返回指定元素
print(a)
a.remove(4) #remove方法在此列表选的位置插入一对象a.insert(插入位置,插入对象)
print(a)
a.clear() #clear方法删除此列表所有对象
print(a)
(5)列表中值的改变
#给一变量赋予一个列表
a = ['red', 'green', 'blue', 'yellow', 'white', 'black',4,5,6]
#使用索引对列表进行修改
a[2] = 2001
print(a)
print(a.index('yellow')) #index查看用于从列表中找出某个值第一个匹配项的索引位置
print(a)
1.3 列表的其它使用方法
函数&方法 | 描述 | |
---|---|---|
len(list) | 列表元素个数 | |
max(list) | 返回列表元素最大值 | |
min(list) | 返回列表元素最小值 | |
in | 判断指定元素是否在列表当中 | |
not in | 判断指定元素是否不在列表当中 | |
list.count | 统计指定元素在列表中出现的个数 | |
reverse() | 翻转列表 | |
sort(key=None,reverse=False) | ⽤来对列表中的元素进⾏排序 reverse: True反序;False 正序 |
#给一变量赋予一个列表
a = ['red', 'green', 'blue', 'yellow', 'white', 'black',4,5,6,'blue','blue','blue']
print(len(a)) #列表元素个数
if 5 in a: #判断是否在列表中
print(a)
if 5 not in a:#判断是否不在列表中
print(a)
print(a.count('blue'))
b = [1,2,3,8,4,5,6]
b.reverse()
print(b)
b.sort(reverse=True)
print(b)
三. for循环和range语句
3.1 for循环的表示及使用
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串,for循环的代码块会执⾏多次,序列中有几个元素就会执行几次。每执行一就会将序列中的⼀个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
(1)for 循环的常用语句
for 变量 in 序列(规则):
代码
(2)for 循环的实例
a = ['red', 'green', 'blue', 'yellow', 'white', 'black',4,5,6]
for i in a:
print(i)
3.2 range语句的表示及使用
(1)内置range()函数它会生成数列
range(start, stop[, step])
(2)range()函数实例
#range函数生成列表
range(5)
print(range(5))
a = list(range(5))
print(a)
#range与for循环配合使用
b = ['red', 'green', 'blue', 'yellow', 'white', 'black',4,5,6]
for i in range(0,9):
print(i,b[i])
四. 作业
4.1 现在有 a = [1,2,3,4,5,6] 用多种方式实现列表的反转([6,5,4,3,2,1]) 并写出 推导过程
(1)使用列表方法进行倒序
#使用列表方法进行倒序
a = [1,2,3,4,5,6]
a.reverse()
print(a)
b = [1,2,3,4,5,6]
b.sort(reverse=True)
print(b)
(2)使用列表的索引
#使用列表的反向取值
a = [1,2,3,4,5,6]
b = a[::-1]
print(b)
(3)使用循环取值排序
a = [1,2,3,4,5,6]
b =[]
i = 1
while i <= len(a):
b.append(a[-i])
i += 1
print(b)
4.2 给用户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输 如的数字⼀致则表示正确,如果不⼀致则表示错误。最终结果要求用户怎么也猜不对
a = [1,2,3,4,5,6,7,8,9,10]
i = 1
while i < 10:
imp = int(input('请输入1-10内的任意整数:'))
print('!!您猜错了,请继续!!')
a.remove(imp)
i += 1
print('剩余的次数为:', 10 - i)
print('正确的数字为:',a[0])
4.3 有两个列表 lst1 = [11, 22, 33] ,lst2 = [22, 33, 44]获取内容相同的元素
lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
lis3 = []
for i in lst1:
for j in lst2:
if i == j:
lis3.append(i)
print('两列表相同值为:',lis3)
4.4 现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中
import random
teacher = ['teacher1','teacher2','teacher3','teacher4','teacher5','teacher6','teacher7','teacher8']
clas = [[],[],[]]
for i in teacher:
num = random.randint(0,2)
clas[num].append(i)
print(clas)