Python入门学习(二) 列表的增删改查

Python入门

Python开发工具的使用:Pycharm的配置使用


第一章:Python入门学习(一)Print函数、Input函数、基本数据类型、运算符、流程控制语句、循环语句
第二章:Python入门学习(二) 列表的增删改查
第三章:Python入门学习(三) 字典的增删改查
第四章:Python入门学习(四)元组与集合
第五章:Python入门学习(五)字符串的操作
第六章:Python入门学习(六)函数学习
第七章:Python入门学习(七)Python异常处理机制
第八章:Python入门学习(八)Python中的类和对象
第九章:Python入门学习(九)Python面向对象的三大特征封装、继承和多态
第十章:Python入门学习(十)Python模块化编程
第十一章:Python入门学习(十一)Python的IO操作


第十二章:Python进阶学习(一)_学生信息管理系统项目


代码仓库地址:Python入门项目

列表

变量可以存储一个元素,而列表可以存储多个元素。
列表相等于其他语言中的数组。

列表的特点

列表的特点:
1.列表顺序按顺序有序排序
2.索引映射唯一个数据
3.列表可以存储重复数据
4.任意数据类型混存
5.根据需要动态分配和回收内存

lis = ['hello','world',98]
# lit[0]  代表取出列表中的第一个元素(0代表索引)   列表中最后一个元素的索引是-1, 所以从后向前数-3也是hello
print(lis[0],lis[-3])

1.列表的查询

获得列表的长度

使用内置函数len()方法
在这里插入图片描述

获取列表中指定元素的索引

获取列表中指定元素的索引
    如果列表中存在重复元素,则只返回第一个元素的索引
    如果查询的元素在列表中不存在,会抛出ValueError
    可以在指定的start,stop之间查询。

获取列表中的单个索引


获取列表中的单个索引
    正向索引从0到N-1
    逆向索引从-N到-1
    如果指定索引不存在,会抛出IndexError
lis =['hello','world',98,'hello']
print(lis.index('hello'))  # 获取hello元素的索引 存在多个,只返回第一个的索引
# print(lis.index('python'))  # ValueError: 'python' is not in list python在列表中不存在,抛出异常
# print(lis.index('hello',1,3)) # 从索引为1开始到索引为3,但是不包括索引为3的元素  查找'hello'元素
print(lis.index('hello',1,4))
lis =['hello','world',98,'hello','world',897]
print(lis[2])  # 查找列表中索引为2的元素 即第三个元素98
print(lis[-3]) # 查找列表中索引为-3的元素 即倒数第三个元素'hello'
# print(lis[20])  # 超出索引范围 抛出异常list index out of range

列表切片操作

切片操作
获取列表中的多个元素 list[start,stop,step]
切片的结果:原列表片段的拷贝
切片的范围:start,stop
step:默认为1

lst = [10,20,30,40,50,60,70,80]
print(lst[1:6:1])  # [20, 30, 40, 50, 60]  是一个新的列表对象
print(lst[1:6])   # 省略步长,默认为1
print(lst[1:6:])  # 冒号后省略步长也是可以的,默认为1
print(lst[1:6:2])  # 步长是2  [20, 40, 60]
print(lst[:6:2])   # 省略start不写,采用默认0
print(lst[1::2])   # 省略stop不写,采用默认即最大索引
# 步长为负数的情况
print(lst[::-1])   # start,stop 都采用默认  步长为-1   [80, 70, 60, 50, 40, 30, 20, 10]  相当于原列表逆序排列
print(lst[7::-1])  # start从7开始  stop采用默认,步长为-1 [80, 70, 60, 50, 40, 30, 20, 10]
print(lst[6:0:-2]) # start从6开始,stop为0,步长为-2,相当于从第七个元素开始,每次索引减2,到第一的元素为止 但是不包括第一个元素10

in , not in 判断指定元素是否在列表中存在

print(10 in lst)
print(100 not in lst)

列表元素的遍历

for item in lst:
    print(item)

2.列表中的增加操作

append()

向列表末尾添加一个元素

# 列表添加元素   向列表中添加新元素后并没有创建新的列表对象
lst = [10,20,30]
print("添加类表之前",lst)
lst.append(40)
print("添加类表之后",lst)

向列表末尾添加一个列表

lst = [10,20,30]
lst2 = ['hello','world']
lst.append(lst2)
print(lst)  # [10, 20, 30, 40, ['hello', 'world']]

在这里插入图片描述

extend()

与上面的append的方式不同,append是将一个列表添加进原列表中,而extend是将新列表中的元素拿出来在添加到原列表中。
在这里插入图片描述

insert()

以上凡是都是在列表末尾新加元素,insert可以在任意位置添加新元素。

# 在任意一个位置上新加元素
lst = [10,20,30]
print(lst)
lst.insert(1,90)  # 在原列表索引为1的位置上添加一个元素
print(lst)

在这里插入图片描述

在任意位置添加N个元素

使用切片方式

# 在任意位置上添加N个元素
lst = [10,20,30]
lst3 = [True,False,'hello']  # 一个新列表lst3
lst[1:] = lst3 # start为1 stop默认最后  步长默认为1   将原列表切片的位置用新列表代替
print(lst)

在这里插入图片描述

3.列表中的删除操作

remove()

根据元素移除

# 列表中的删除操作
lst = [10,20,30,40,50,30]
print(lst)
lst.remove(30)  # 从列表中移除30 这个元素,如果有多个,只移除第一个元素
print(lst)

在这里插入图片描述

pop()

根据索引移除

# pop()     根据索引移除
lst = [10,20,30,40,50,30]
print(lst)
lst.pop(1)
print(lst)
lst.pop()  # 如果没有索引,移除列表中的最后一个元素
print(lst)

在这里插入图片描述
在这里插入图片描述

切片操作

产生新列表:

# 切片操作  至少删除一个元素,将产生一个新的列表
lst = [10,20,30,40,50,30]
print(lst)
new_list = lst[1:3]  # 从1开始  到3结束(不包括3)
print(new_list)

在这里插入图片描述
不产生新列表 而是删除原列表中的元素:

# 不产生新列表 而是删除原列表中的元素
lst = [10,20,30,40,50,30]
print(lst)
lst[1:3] = []  # 将切片的列表用一个空列表替代
print(lst)

在这里插入图片描述

clean()

# clear()清空列表  清除列表中的所有元素
# del()  删除列表  将列表对象删除
lst = [10,20,30,40,50,30]
lst.clear()
print(lst)

在这里插入图片描述

del

lst = [10,20,30,40,50,30]
del lst
print(lst) # NameError: name 'lst' is not defined

在这里插入图片描述

4.列表元素的修改操作

为指定索引的元素赋予一个新值

# 修改列表中元素的值
lst = [10,20,30,40,50,30]
print(lst)
lst[0] = 100
print(lst)

在这里插入图片描述

为指定的切片赋予一个新值

lst = [10,20,30,40,50,30]
print(lst)
lst[1:3] = [100,200,300,400]  #  切片: 从1索引开始到3结束()不包含索引为3的元素,用一个新的列表将切片的部分替换
print(lst)

在这里插入图片描述

5.列表的排序操作

常见的两种方式:
1.调用sort()方法,列表中所有的元素默然按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序。
2.调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变。
方式一:
改变原有列表顺序

lst = [34,23,14,57,1312,320]
print("排序前:",lst)
lst.sort()
print("排序后:",lst)

在这里插入图片描述
降序:

lst = [34,23,14,57,1312,320]
print("排序前:",lst)
lst.sort(reverse=True)
print("排序后:",lst)

方式二:
不改变原有列表顺序

lst = [34,23,14,57,1312,320]
print("排序前:",lst)
new_list = sorted(lst)
print("排序后:",new_list)

在这里插入图片描述
降序:

lst = [34,23,14,57,1312,320]
print("排序前:",lst)
new_list = sorted(lst,reverse=True)
print("排序后:",new_list)

5.列表生成式

在这里插入图片描述

# 列表生成式
lst = [i for i in range(1,10)]
print(lst)

总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Liu_Shihao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值