列表、下标、切片及练习

FY-Python2301项目下创建一个名为day06的文件夹,在day06下创建一个名为01-列表的代码文件。

容器型数据类型
列表(下标、切片、for循环、列表的一系列方法:append、insert、clear、del、pop、remove、reverse、sort、sorted、extend、max、min、sum、count、index等)

1、什么是列表?
1)回顾:需要有很多数据保存,前边保存数据使用的是变量
2)假设保存30个学生的数学成绩?如果成绩都是用变量保存的,太不现实了!!这个时候就需要有容器,列表便是容器数据类型中的一个!!!列表就是用来更方便的保存数据的
score = [50, 60, 66, 20, 40, 70, 80, 100]
students = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']


2、列表的性质
a、列表是一个有序的容器数据类型(有序代表列表中每个元素有自己的固定位置:下标
b、列表是一个可变的容器数据类型(可变代表列表中元素可以被修改:增、删、改
c、列表使用[ ],列表中元素之间使用,逗号隔开(英文状态下)
d、列表的数据类型:list
e、列表中可以存放任意类型的数据


3、创建一个空列表
list1 = []
print(list1, type(list1))
打印结果

在这里插入图片描述

4.下标和切片

下标:每个元素都有自己的位置
从左向右:正向下标,从0开始递增
从右向左:负向下标,从-1开始递减
正向下标:0 1 2 3 4
负向下标:-5 -4 -3 -2 -1
通过下标获取元素:语法 --> 容器[下标]

list2 = [100, 200, 300, 400, 500]
print(list2[2], list2[-3])
打印结果

在这里插入图片描述

注意:下标不要越界

print(list2[100])  #list index out of range
打印结果

在这里插入图片描述

通过下标引申出更高级的知识点:切片

切片: 能够从原容器中获得新的子容器(从原容器中获取N个元素组成新的容器)

容器[start:stop:step]

start:开始参数,默认为0,可以省略不写

stop:结束参数(必须赋值的一个参数);当要获取最后一个元素时,可以不写

step: 步长,决定下一个被获取元素的下标,默认为1,可以省略不写


切片也是一个左闭右开区间,下一个被获取元素的下标 = 当前被获取元素的下标 + step

当step>=1时,start代表的元素必须在stop代表的元素左侧

当step<=-1时,start代表的元素必须在stop代表的元素的右侧


games = ['lol', '王者荣耀', 'PUBG', 'DNF', 'QQ飞车']
# 正向下标
print(games[1:5:1])
print(games[1:5])

print('-----------------------华丽分割线-------------------------')

print(games[1:6], games[1:])
print(games[0:3], games[:3])
print(games[:2])

print('----------------华丽分割线-------------------')
print(games[:])
print(games[::2])

# 负向下标
print(games[::-1], games[-1::-1])
print(games[::-2])

print(games[1:-2])
打印结果

在这里插入图片描述
day06下创建一个名为02-练习的代码文件,我们下期和day07的练习一起来讲

FY-Python2301项目下创建一个名为day07的文件夹,在day07下创建一个名为01-列表的代码文件。

一、列表的遍历(列表中的循环)
1、直接遍历
list1 = ['阿甘正传', '海王', '阿凡达', '霸王别姬', '憨豆特工', '红海行动']
for i in list1:
    print(i)

在这里插入图片描述

2.间接遍历
len():能够查看容器中元素个数(返回容器的长度)(代表容器长度)
list1 = ['阿甘正传', '海王', '阿凡达', '霸王别姬', '憨豆特工', '红海行动']
print(len(list1))
for j in range(len(list1)):
    print(f'下标{j} --> 元素{list1[j]}')

在这里插入图片描述

二、列表的拼接(合并)重复
list1 = ['阿甘正传', '海王', '阿凡达', '霸王别姬', '憨豆特工', '红海行动']
list2 = ['战狼']  
print(list1 + list2)  # 拼接
print(list2 * 5)  # 重复

在这里插入图片描述

列表性质补充:列表中可以出现重复元素(有些列表不可以出现重复元素)

三、列表是可变的(增、删、改)
games = []  # 创建一个空列表
print(games)

1、增加元素 : append():向列表中添加元素
games = []
games.append('王者荣耀')
games.append('和平精英')
print(games)

在这里插入图片描述

insert : 向列表中插入元素(向指定位置添加元素)
games.insert(1, '天天酷跑')
print(games)

在这里插入图片描述


2、修改 : 容器[下标] = 新的值
games[1] = '欢乐斗地主'
print(games)

在这里插入图片描述

3、删除 : del:根据指定下标删除元素
del games[-1]
print(games)

在这里插入图片描述

remove() : 删除指定元素
games.remove('王者荣耀')
print(games)

在这里插入图片描述

pop:根据下标删除元素,使用pop删除的元素还能被找回
content = games.pop(0)
print(content, games)

在这里插入图片描述

clear() : 直接清空列表
list3 = ['阿甘正传', '海王', '阿凡达', '霸王别姬', '憨豆特工', '红海行动']
list3.clear()
print(list3)

打印结果就是空列表

为什么说增删改说明列表是可变的?


以上列表的增删改操作都是建立在games这个列表自身基础上的

删除操作:del,remove,clear等于电脑中直接删除文件

pop等于将文件删除时放入回收站,还可以再次回复


day07下创建一个名为02-练习的代码文件。我们下期和day06的练习一起来讲

day07下创建一个名为03-列表相关方法的代码文件

1、index : 可以从列表中查找指定元素的下标,找到元素直接停止查找

--> 结果为4

list1 = [1, 2, 3, 4, 5, 6, 7, 5]
result = list1.index(5)
print(result)
还可以指定开始查找的位置(从下标为6的位置开始查找5)

--> 结果为7

result1 = list1.index(5, 6)
print(result1)

如果index找不到元素,报错
list1.index(100) # 100 is not in list

2、sort : 将列表从小到大排序,sort方法修改的是列表本身

-->结果为[1, 2, 3, 4, 5, 5, 6, 7]

list1 = [1, 2, 3, 4, 5, 6, 7, 5]
list1.sort()
print(list1)
添加参数reverse=True,就可以从大到小排序

--> 结果为[7, 6, 5, 5, 4, 3, 2, 1]

list1 = [1, 2, 3, 4, 5, 6, 7, 5]
list1.sort(reverse=True)
print(list1)
3、sorted : 将列表从小到大排序,sorted方法不会修改列表本身

--> 结果分别为
[0, 1, 2, 4] [2, 4, 1, 0]
[4, 2, 1, 0] [2, 4, 1, 0]

list2 = [2, 4, 1, 0]
print(sorted(list2), list2)

list2 = [2, 4, 1, 0]
print(sorted(list2, reverse=True), list2)
4、reverse : 能够将列表倒序,reverse修改的是列表本身。

--> 结果分别为[5, 4, 3, 2, 1]

list4 = [1, 2, 3, 4, 5]
list4.reverse()
print(list4)
5、extend : 能够将容器中的元素全部添加到列表中

--> 结果分别为:
[[5, 4, 3, 2, 1]]
[[5, 4, 3, 2, 1], 5, 4, 3, 2, 1]
[[5, 4, 3, 2, 1], 5, 4, 3, 2, 1, 0, 2, 4, 6, 8]

list4 = [1, 2, 3, 4, 5]
list5 = []
list5.append(list4)
print(list5)

list5.extend(list4)
print(list5)

list5.extend(range(0, 9, 2))
print(list5)
6、count : 计数,统计列表中某个元素的出现次数

--> 结果为2

print(list5.count(2))
7、sum:针对于数字列表求和(列表中都是数字的列表)
问:list4能不能被称为数字列表? 答:不能。[[5, 4, 3, 2, 1], 5, 4, 3, 2, 1, 0, 2, 4, 6, 8]

--> 结果为6

list6 = [1, 2, 3]
print(sum(list6))
8、max、min : 查看列表中的最大值、最小值

--> 结果f分别为为3、1

print(max(list6), min(list6))
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值