列表中的切片和增删改除以及range()函数的的详解

1.序列

1.序列的基本概念

  • 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,第- -个索引是0 ,第二个索引是1 ,依此类推。Python中, 常见序列有列表、元组、字符串。序列可以进行的操作, 有索引,切片,加,乘,检查成员此外, Python已经内置确定序列的长度以及确定最大和最小的。元素的方法

2.序列的分类

  • 可变序列:序列中的元素可以改变:eg:列表
  • 不可变序列:序列中的元素不可以改变:eg:字符串和元组

2.列表(list)

1. 列表是python的一个对象

  • 列表的作用:
    1.列表可以保存多个有效的数据
    2.列表是用来储存对象的对象

2.列表的使用

  • 列表通过[]来创建
  • list=[1,None,True]

3.切片

  • 切片是指从现有列表中获得字列表
  • 通过切片来获取指定列表
  • 语法:[起始:结束:步长]
  • 通过切片获取元素的时候会包括其实位置的元素,不会包括结束的元素,即:左闭右开区间
  • list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
    1.print(list1[3:5])
    2.print(list1[-2:-4:-1])
    list1[3:4]=‘你好’ 字符串会被拆分
    3.print(list1)
    4.list1[0:0]=‘唐僧‘
    就是在第一个位置插入被拆分的字符串’唐’‘僧’
    5.list1[0:0]=['唐僧’]
    以下是插入列表则第一个元素就是唐僧
    在这里插入图片描述
  • 当我们设置了步长取到多少个,你替换的数据就有多少个
    list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
    list1[::2]=[‘唐僧’,‘唐僧’,‘唐僧’]
    在这里插入图片描述

4.通用操作

1. +和 *

  • 注:俩个列表不能相乘
    1.a = [1, 2, 3] + [4, 5, 6]
    print(a)
    2.a = [1, 2, 3] * 3
    print(a)
    在这里插入图片描述

2. in和not in(字符串也能这样操作)

  • 判断元素是否在列表中
  • b = [1, 2, 3, 1]
    print(1 in b)
    在这里插入图片描述

3.len()max()min()

  • len()获取列表元素个数
  • max()获取列表元素最大值
  • min()获取列表元素最小值
  • b = [1, 2, 3, 1]
    print(max(b))
    print(min(b))
    print(len(b))
    在这里插入图片描述

4.index查找 而列表中没有(find)

  • 格式:list.index(x[start,[,end]])
    1.第一个参数获取指定元素在列表中的位置
    2.第二个参数查找起始位置
    3.第三个参数查找结束位置

  • index返回的结果就是当前元素的索引

5.count统计指定元素在列表中的个数

  • 格式:list.count(x)
  • b = [1, 2, 3, 1]
    print(b.count(1))
    在这里插入图片描述

3.列表中的修改方法

  • 方法是和面向对象相关的
  • 使用方式:对象.方法名(‘参数’)

1.添加方法

  • append 向列表中最后一个位置插入元素
  • list1.append(‘沙僧’)
  • insert 向列表任意一个位置插入元素需要指定位置
  • list1.insert(4,'沙僧‘)
  • extend 向列表中最后一个位置插入元素,使用新的序列来扩展当前序列
  • list1.extend(['沙僧’,‘孙文’]

2.删除方法

  • pop()
  • 根据索引删除并返回元素,如果不传递索引,默认删除最后一个
  • eg:list1.pop()
  • remove()
  • 删除指定元素
  • eg:list.remove(‘沙僧’)
  • del:根据索引位置来删除在这里插入图片描述

3.列表排序

  • list.reverse()
  • 列表倒序
  • list.sort()默认是正序
  • list.sort(reverse=True)倒序排列

4.for循环以及range函数

  • for 循环的语法格式如下:
    for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块

  • 1.for循环保存累加结果的变量

  • print(“计算 1+2+…+100 的结果为:”)
    a = 0
    #逐个获取从 1 到 100 这些值,并做累加操作
    for i in range(101):
    a += i
    print(a)
    运行结果为:
    计算 1+2+…+100 的结果为:
    5050

  • 2.for循环遍历元组和列表

  • my_list = [1,2,3,4,5]
    for a in my_list:
    print(‘a =’,a)
    运行结果:
    a=1
    a=2
    a=3
    a=4
    a=5
    3.for循环遍历字典
    my_list = {‘颜色’:‘red’,‘大小’:‘big’}
    for x in my_list:
    print(x)
    for x in my_list.items():
    print(x)
    在这里插入图片描述

  • range语法:range(开始位置,结束位置,步长)开始位置可以省略,默认步长为1
    在这里插入图片描述

作业1.现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转([6,5,4,3,2,1]) 并写出推导过程

  • a=[1,2,3,4,5,6]#方法1
    a.sort(reverse=True)
    print(a)
    a=[1,2,3,4,5,6]#方法2
    a.reverse()
    print(a)
    a=[1,2,3,4,5,6]#方法3
    print(a[::-1])
    在这里插入图片描述

作业2.给用户9次机会猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对

  • import random
    print(‘游戏即将开始召唤师!’)
    i=1
    x=10
    a=[1,2,3,4,5,6,7,8,9]
    while i<10:
    i+=1
    x-=1
    print(‘你还有{}次机会来进行游戏’.format(x))
    player=int(input(‘请输入一个1-10中的数字:’))
    computer=random.choice(a)#在序列a中随机选择一个数
    if player==computer :
    a.remove(computer)#删除列表中的一个相同的元素
    b = random.choice(a)
    print(b)
    a.append(computer)
    else :
    print(computer)
    print(‘哦,你可是今天最倒霉的召唤师了
    竟然一次都没有正确,下次再来哦!!’)
    在这里插入图片描述

作业3.有两个列表 lst1 = [11, 22, 33],lst2 = [22, 33, 44],获取内容相同的元素

  • lst1 = [11, 22, 33]
    lst2 = [22, 33, 44]
    for a in lst1:
    if a in lst2:
    print(a,end=’\n’)
    在这里插入图片描述

作业4.现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中

import random
teacher=[‘teacher1’,‘teacher2’,‘teacher3’,‘teacher4’,‘teacher5’,‘teacher6’,‘teacher7’,‘teacher8’]
offic_1=[]
offic_2=[]
offic_3=[]
x=0
while x<8:
a = random.randint(1, 3)
if a1:
offic_1.append(teacher[x])
print(‘offic_1’,offic_1)
elif a
2:
offic_2.append(teacher[x])
print(‘offic_2’,offic_2)
else:
offic_3.append(teacher[x])
print(‘offic_3’,offic_3)
x+=1
print(‘办公室1坐的老师是:’,offic_1)
print(‘办公室2坐的老师是:’, offic_2)
print(‘办公室3坐的老师是:’,offic_3)
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最低调的奢华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值