python第三章(上)

python系列

python第一章(上)
python第一章(下)
python第二章
python第三章(下)



前言

  1. 列表与列表操作
  2. 数值列表
  3. 序列转函数

一、列表与列表操作

列表定义

  • 列表(list)用来有序存放一组相关数据,以便进行统一的处理。
    Python中,将一组数据放在一对方括号[]”中即定义了一个列表。

列表访问

  • 列表元素按序号访问
    在这里插入图片描述
s=[9,8,7,6,5,]
print(s[1])
print(s[-3])
  • 运行截图
    在这里插入图片描述

列表存放

  1. 可以存放一组成绩
scores=[98,95,85,60,78]
  1. 可以存放一组人名
names=["张三"'李四''王麻子']
  1. 可以存放一个学生基本信息
student=['张三','18','江西南昌']
  1. 可以放若干学生基本信息
students=[['张三','18','江西南昌'],['李四','19','云南昆明']]
  1. 可以嵌套列表
player1=["张三",90]
player2=["李四",80]
player3=["王麻子",95]
player4=["老刘",99]
players=[player4,player3,player2,player1]
print(players)
  • 运行截图
    在这里插入图片描述

列表操作

  • 列表元素有序存放,并且可变。支持修改、添加和删除操作。

修改元素

  • 列表名[索引] = 新值
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
names[0]='黄蓉'#修改第一个元素
print(names)
  • 运行截图
    在这里插入图片描述
  • 通过赋值交换元素
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
names[0],names[-2]=names[-2],names[0]#通过赋值交换元素
print(names)
  • 运行截图
    在这里插入图片描述

添加元素

尾部追加------append方法
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
names.append("段誉")
print(names)
  • 运行截图
    在这里插入图片描述
指定位置元素插入------insert方法
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
names.insert(1,"玉皇大帝")
print(names)
  • 运行截图
    在这里插入图片描述

删除元素

按索引删除元素----del命令
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
del names[-2]
print(names)
  • 运行截图
    在这里插入图片描述
按索引删除元素----pop方法
names=["李白","张飞","刘备","王安石","孙悟空"]
print(names)
names.pop(2)
print(names)
names.pop()
print(names)
  • pop后面参数缺省时,默认删除最后一个元素
  • 运行截图
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/a3f3d28b57904a399773d531e02f4757.png
按值删除元素-----remove方法
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
print(names)
names.remove("刘备")
print(names)
names.remove("李白")
print(names)
  • 若有两个元素一样,则删除索引值较小的那一个
  • 运行截图
    在这里插入图片描述

其他操作

方法描述
len()统计和返回指定列表的长度,即列表中元素的个数(len(列表))
in和not in用来判断指定的元素是否在列表中(元素 in(not in)列表)
.index()用来在列表中查找指定的元素,如果找到返回第一个元素对应的索引;如果找不到,会直接报错。(列表.index(元素))
.count()用来统计并返回列表中指定元素的个数(列表.count(元素))

names=["李白","张飞","刘备","李白","王安石","孙悟空"]
print("names长度为",len(names))
print("李白在列表里面吗","李白" in names)
print("张三在列表里面吗","张三" in names)
print("张三不在列表里面吗","张三" not in names)
print("王安石的索引值为",names.index("王安石"))
print("列表里有几个李白",names.count("李白"))
  • 运行截图
    在这里插入图片描述

遍历列表

用range函数遍历
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
for i in range(len(names)):
    print(names[i])
  • 运行截图
    在这里插入图片描述
直接元素遍历
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
for i in names:
    print(i)
  • 运行截图
    在这里插入图片描述

列表排序

sort方法
  • sort原地排序,改变原来的表
  • 若列表嵌套,则按第一个元素为关键字排序
  • sout后面参数缺省按升序,
  • 参数里"reverse="的值为True则降序
ls=[2,8,5,4,6,9,2,1]
print(ls)
ls.sort()
print(ls)
ls.sort(reverse=True)
print(ls)
ls=[(5,2),(2,9),(7,2),(9,8),(1,8),]
print(ls)
ls.sort()
print(ls)
  • 运行截图
    在这里插入图片描述
sorted函数排序
  • sorted命令的使用和参数含义和sort方法一致。 但sorted命令生成新的有序列表,不改变原来的列表。

列表切片

  • 列表切片和字符串切片操作 类似,直接指定切片的起始索引、终止索引和切片方式。

  • 字符串中关于索引和切片方式的规定都适用于列表切片。这里不再操作

     列表[起始索引 :终止索引 :n]
    

列表扩充

  • 列表的扩充是将两个列表合并成一个新的列表。
"+"运算
ls=[2,8,5,4,6,9,2,1]
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
sh=names+ls
print(sh)
  • “+”运算将两个列表连接生成一个新列表,而不改变参与运算的列表本身。
  • 运行截图
    在这里插入图片描述
extend方法
  • 将参数列表添加至原列表中。
ls=[2,8,5,4,6,9,2,1]
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
names.extend(ls)
print(names)
  • 运行截图
    在这里插入图片描述
"*"运算
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
ls=names*2
print(ls)
  • 与“+”运算类似,“*”运算也生成新列表、而不改变参与运算的列表本身。
  • 运行截图
    在这里插入图片描述

列表复制

copy方法
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
ls=names.copy()
print(ls)
  • ls和names是两个独立的空间
  • 运行截图
    在这里插入图片描述
赋值方法
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
ls=names
print(ls)
ls.append('七五')
print(names)
  • ls和names共享空间
  • 也不能说复制,应该是叫取别名更贴近。
  • 运行截图
    在这里插入图片描述

列表删除

清空
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
del names[:]
print(names)
  • 经过删除“所有元素”的del操作后,列表中不包含任何元素,但是仍保留其列表的本质。
  • 运行截图
    在这里插入图片描述
删除
names=["李白","张飞","刘备","李白","王安石","孙悟空"]
del names[]
print(names)
  • del后直接跟列表名,则将彻底删除该列表对象!
  • 运行截图
    在这里插入图片描述

数值列表

  • 之前讲过input()从键盘输入后返回的是字符串
  • 用eval可以转换成列表
ls=input("please enter some nums")
print(type(ls))
ls=input("please enter some nums")
print(type(ls))
ls=eval(input("please enter some nums"))
print(type(ls))
  • 运行截图
    在这里插入图片描述
  • 还可以用list方法转换成列表
ls=input("please enter some nums")
ls=list(ls)
print(type(ls))
  • 运行截图
    在这里插入图片描述

数值列表简单计算

  • min()求最小元素
  • max()求最大元素
  • sum()求和
ls=[2,5,8,9,7,4,1]
print(min(ls))
print(max(ls))
print(sum(ls))
  • 运行截图
    在这里插入图片描述

列表生成式

  • 列表 = [循环变量相关表达式 for 循环变量 in range函数]
lim=[]
for i in range(1,10):
    lim.append(i**2)
print(lim)
num=[i**2 for i in range(1,10)]
print(num)
  • 运行截图
    在这里插入图片描述
  • 例子,请根据该列表用列表生成式生成包含学生姓名的列表。
    在这里插入图片描述
ls=[['张三','18','江苏南京'],['李四','19','山东济南']]
name=[item[0] for item in ls]
print(ls)
print(name)
  • 运行截图
    在这里插入图片描述
  • 也可以进行嵌套
ls=[i*j for i in range(1,3) for j in range(1,5)]
print(ls)
  • 运行截图
    在这里插入图片描述
  • 上面的嵌套代码相当于
for i in range(1,3):
    for j in range(1,5):
        ls.append(i*j)
print(ls)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

X在学了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值