列表

序列

基本概念

  • 序列是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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值