序列
基本概念
序列是python中最基本的一种数据结构。序列用来保存一组有序的数据,所以数据在序列当中都有一个唯一的位置(索引)并且序列的顺序会按照添加的顺序来分配索引 数据结构是指计算机存储数据的方式
序列的分类
可变序列(序列中的元素可以改变):例如:列表(list) 不可变序列(序列中的元素不可以改变):例如:字符串(str)元祖(tuple)
列表(list)
列表是python中的一个对象 列表的作用 1 .列表中可以保存多个有序数列的数据 2 .列表是用来存储对象的对象
列表的使用
切片
切片是指从现有列表中获得一个子列表 通过切边获取指定的元素 语法:列表[起始:结束:步长] 通过切片获取元时,会包括起始位置的元素,不回包括结束位置的元素,是一个左闭右开区间 起始位置和结束位置的索引可以不写 1 .如果省略结束位置,则会从当前位置一直截取到最后 2 . 如果省略开头位置,则会从第一个元素截取到最后一个元素,当不包括结束的元素 3 . 如果开始位置和结束位置都省略了,则会从第一个位置截取到最后一个位置 4 . 步长表示每次截取元素步长的间隔,默认为1(可以省略不写) 5 . 步长不可以为0,当是可以为负数,为负数是从索引为-1的位置开始截取
通用操作
+和* 1 . +可以吧两个列表拼接成一个列表 2 . *可以将列表做制定重复的次数(注意两个列表不能做乘法,要和整数做乘法运算) in和not in in是用来检查制定元素是否在列表当中 not in是用来检查制定元素是否不再列表中 len()用来获取列表的长度 max()获取列表中的最大值 min()获取列表中的最小值 list.index(指定元素,查找的起始位置,查找的结束位置) list.count()统计指定元素在列表出现的次数
修改列表
list[索引] 对索引上的数据进行修改 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列 ) 当设置步长时,序列中元素的个数必须和切片中元素保持一致 通过切片来删除元素 1 . del list[起始:结束] 2 . list=[]
列表的方法
append()向列表最后一位添加一个元素 insert (arg1,arg2)向列表中的某个位置(索引)插入某个元素 参数1插入的位置 参数二插入的元素 extend ()使用一个新的序列来扩展当前序列(它会将序列中的元素添加到列表中)参数需要传递一个序列 pop()根据索引值删除并且返回你删除的数据,如果没有传递索引值,那么会删除最后一个 remove ()根据指定元素来删除 reverse ()反转列表 sotr(key=None,reverse=True)用来对列表中的元素进行排序 reverse:True为倒序,False为正序
作业
现在有 a=[1,2,3,4,5,6]用多种方式实现列表的反转([6,5,4,3,2,1])并写出推导过程 方法一 思路:使用for循环遍历每一个数值然后在开头插入数值
a = [ 1 , 2 , 3 , 4 , 5 , 6 ]
b = [ ]
for i in a:
b. insert( 0 , i)
print ( b)
a = [ 1 , 2 , 3 , 4 , 5 , 6 ]
a. reverse( )
print ( a
给用户九次机会猜1-10个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对 思路:先使用while循环九次,遍历1-10个数字进行判断是否和玩家输入的相同
i = 1
while i <= 9 :
wanjia = int ( input ( "猜数字游戏,请输入数字一到十:" ) )
for num in range ( 1 , 11 ) :
if wanjia == num:
continue
else :
print ( f"电脑出的是{num},你出的是{i},你输了请重新输入" )
break
i += 1
else :
print ( "九次机会已用完" )
有两个列表list=[11,22,33] list=[22,33,44]获取内容相同的元素 思路:遍历一个列表,判断是否在另一个列表中
lst1 = [ 11 , 22 , 33 ]
lst2 = [ 22 , 33 , 44 ]
for a in lst1:
if a in lst2:
print ( a)
现在又8位老师,3个办公室,要求将8位老师随机分配到三个办公室中 思路:首先定义一个列表中添加三个列表,再定义一个列表中添加教师名字,遍历教师的列表,取一个0-2的随机数当办公室的索引。
office = [ [ "" ] , [ "" ] , [ "" ] ]
teacher = [ "小黄" , "小黑" , "小白" , "小绿" , "小明" , "小华" , "小东" , "小周" ]
for a in teacher:
b = random. randint( 0 , 2 )
office[ b] . append( a)
print ( office)