Python入门笔记(第五期——序列的应用1)

前言:
先给大家道个歉,我拖更了!emmm…最近有点忙,导致最近也是没有关注过CSDN,不过,放心吧!这个我会补回来的。本文章供python初学者自学学习,以后的话应该会每周末更新一次,因为本人也是在自学python,所以想借此来分享一波笔记。喜欢的话可以关注一下。
正文:
本章内容会很长,所以我打算分两期出,本章分为三个大模块:列表、元组、字典。我们先将一下序列的常用操作,和列表。等第二期在讲元组和字典。

序列常用操作:

序列:一块用于存放多个值的连续内存空间,并按一定顺序排列(相当于数组)。序列结构主要包括:列表、元组、字典
索引:序列中每个元素的编号。这个编号是从0开始的。
但是有一点要说的是:索引可以为负数(是不是很神奇)而且为负数时,倒数第一个数为 -1 。我们可以通过索引来访问序列中任何元素。

下面说几个序列常见操作:
一、切片:
格式:

sname[start : end : step]
参数含义
sname表示序列名称。
start切片开始位置(包括开始位置)可以省略,省略默认为0;
end切片结束位置(不包括结束位置)可以省略,省略默认为序列长度;
step表示切片步长,省略默认为 1

代码如下:

ls=["好好学习","天天向上","加油","小王"]
print(ls[:])         #复制整个序列
print(ls[1:3])       #获取从第二个到第三个元素

运行结果如下:
在这里插入图片描述
二、序列相加
在python中支持两种相同类型的序列相加,即两个序列进行连接
相同类型:同为列表、同为元组、或者同为集合,序列中的元素类型不一样没事。

代码如下:

ls1=["好好学习","天天向上","加油","小王"]
ls2=[12,33,45,56,98]
print(ls1+ls2)

运行结果如下:在这里插入图片描述
三、序列相乘:
在python中使用数字 n 乘以一个序列会产生生成新的序列,新序列的内容为原来内容的重复 n 次的结果
代码如下:

ls=["好好学习","天天向上","加油","小王"]
print(ls*3)          #复制三遍
ls1=[None]*5
print(ls1)

运行结果如下:
在这里插入图片描述
我想吐槽一下:这个编译器 L 和 1 太难区分了,我上面写的代码第一个是 L 第二个是 1 ,你们看出来了吗?也希望大家命名的时候尽量避开这两个字母,害!真是的,好烦啊!

四、检查某个元素是否为序列成员
检查是否为序列成员用关键字 in 。
格式:

value in sequence
参数含义
value表示要检查元素
sequence表示指定序列

它的返回值是 bool 值。
代码如下:

ls=["好好学习","天天向上","加油","小王"]
print("小王" in ls)

运行结果如下:
在这里插入图片描述
五、计算序列的长度、最大值、最小值
这都是python的内置函数,很多吧!赶紧去记吧!
(1)计算序列长度:使用 len() 函数
(2)计算最大值:使用max()
(3)计算最小值:使用min()

代码如下:

num = [28,36,43,83,93,28,84,92]
print("序列num的长度为",len(num))
print("序列num的最大值为",max(num))
print("序列num的最小值为",min(num))

运行结果如下:
在这里插入图片描述
列表
我们刚刚举得例子都是列表,它就是用一对中括号括着每个元素之间用 ","分割元素内容可以类型不一样
格式:

listname = [element1,element2,element3,element4]

虽然列表元素类型可以不一样,但是我们不用,哎!就是玩。(提高程序可读性)
(1)创建空列表

list = []   #创建空列表

(2)创建数值列表

list()函数基本用法

list(data)

data:表示可以转换为列表的数据,例如:range对象、字符串、元组等等。

ls=listrange(10,20,2))  #输出[10, 12, 14, 16, 18]

(3)删除列表
这个说不说都一样,python自带回收机制,所以你不删也没事。简单提一下:

del listname

listname:要删除列表名称。
(4)访问列表元素
可以直接通过索引来进行访问
代码如下:

num = [28,36,43,83,93,28,84,92]
print(num[4])
print(num[-1])

运行结果如下:
在这里插入图片描述
这里说一下:索引是从0开始的,如果用负数表示的话,最后一个数为 -1

(5)遍历列表

1.用for循环进行遍历

for item in listname:
	#输出item

item:保存获取到的元素值

2.使用for循环和enumerate()函数实现
格式:

#输出index和item
for index,item in enumerate(listname):
参数含义
item保存获取到的元素值
index保存元素的索引
listname列表名称

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅","杨洋"]
for index,item in enumerate(name):
    print(index+1,item)

运行结果如下:
在这里插入图片描述
(6)添加、修改、删除列表元素
1.添加元素
之前讲过用 + 连接两个序列,那样是可以的,我们介绍另外一种方式:append(),它是在列表末尾添加元素
格式:

listname.append(obj)
参数含义
listname列表名称
obj为要添加到列表末尾的对象

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name.append("杨洋")
print(name)

运行结果如下:
在这里插入图片描述
另外还有extend(),它可以把列表添加到另一个列表末尾(类似于+的功能)

listname.extend(seq)

seq:要添加的列表
这个就不给大家举例子了,和append用法一样。

(7)修改元素
修改元素就和访问元素一样,直接通过索引来修改就可以了

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name[0]="张子枫"
print(name)

运行结果如下:
在这里插入图片描述
(8)删除元素
1.根据索引删除
我们还是可以用 del 语句删除

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
del name[3]
print(name)

运行结果如下:在这里插入图片描述

2.根据元素值删除
如果不知道元素所在的索引值,只知道要删除元素值可以用 remove() 方法实现。

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
name.remove("王源")
print(name)

运行结果如下:
在这里插入图片描述
但是这么用有一点点问题:如果元素值不在这个序列中,我们用了 remove 那莫我们的编译器会报错。所以我们应该先判断这个元素值是否存在,如果存在我们再进行删除。所以我们对代码进行修改一下。

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name)
if name.count("王源")>0:
	name.remove("王源")
print(name)

运行结果和上面结果一样,count()函数用于判断元素出现次数,我们等一下就说。
(9)对列表进行统计计算
1.获取列表对象出现次数
格式:

listname.count(obj)

obj:表示要判断是否存在的对象
如果返回值是 0 的话表示列表中不存在该元素值

代码如下:

name = ["王源","王俊凯","易烊千玺","黄磊","何炅"]
print(name.count("张子枫"))
print(name.count("王俊凯"))

运行结果如下:

在这里插入图片描述
2.获取指定元素首次下标
格式:

listname.index(obj)
参数含义
listname列表名称
obj表示要查找的对象,如果查找对象不存在,系统会报错。所以和刚刚一样,我们可以用count函数

它的返回值即为 首次出现的索引值

3.统计数值列表的元素和
可以用sum()函数统计数值列表中各元素的和
格式:

sum(iterable[,start])
参数含义
iterable表示要统计的列表
start表示统计结果再加上start值,没有默认为0

例如:

num = [28,36,43,83,93,28,84,92]
sum1=sum(num)
sum2=sum(num ,29)    #num的和加上29
print(sum1)          #487
print(sum2)          #516

(10)对列表进行排序
1.使用列表对象的 sort ()方法实现
用 sort()函数实现,对于原列表中元素顺序进行排序,排序后原列表发生改变。
格式:

listname.sort(key=None,reverse=False)
参数含义
listname进行排序列表的名称
key表示指定每个列表元素中提取比较键
reverse可选参数,如果将值指定为 True,表示降序排列、指定为 False 表示升序排列,默认为升序排列。

对于key参数,我们在对字符串进行排序时sort()函数一般默认先对大写字母进行排序,在对小写字母进行排序。如果想要不区分大小写时,就需要指定key参数。我们指定 key=str.lower来进行不区分大小写操作。
举个例子,代码如下:

num = [93,92,33,48,293,12,89,59,58]
num.sort()
print("升序:",num)
num.sort(reverse=True)
print("升序:",num)
str1 = ["Tom","cat","Angela","pet","Zoo"]
str1.sort()
print("区分字母大小写:",str1)
str1.sort(key=str.lower)
print("不区分字母大小写:",str1)

运行结果如下:
在这里插入图片描述
2.使用内置函数sorted()实现
区别一下这两个函数,一个加 ed 另一个不加。sorted与它最大的区别就是,该函数再进行排完序之后,不会对原列表进行改变,而是先生成一个副本,然后在副本内进行排序。
格式:

listname_s=sorted(listname,key=None,reverse=False)
参数含义
listname_s生成副本的名称
listname要排序的列表
key表示指定每个列表元素中提取比较键
reverse可选参数,如果将值指定为 True,表示降序排列、指定为 False 表示升序排列,默认为升序排列。

这个 key 和 reverse 的用法都是和第一个函数用法一样,包括key的字符大小写的问题。这里就不再赘述了。只要记住两个函数的区别久好很掌握了。
(11)列表推导式
使用列表推导式可以快速生成一个列表,或者根据要求生成指定的列表。
1.生成指定范围的数值列表
格式:

listname = [Expression for var in range]
参数含义
listname生成的列表的名称
Expression表达式,用于计算新列表的元素
var循环变量
range采用range()函数生成range对象

代码如下:

listname = [x*3 for x in range(1,10,2)]
print(listname)

运行结果如下:
在这里插入图片描述
2.根据列表生成指定需求的列表
格式:

newlist = [Expression for var in list]
参数含义
newname生成的列表的名称
Expression表达式,用于计算新列表的元素
var变量,值为后面列表的每个元素值
list用于计算生成新列表的原列表

代码如下:

pince = [1200,1500,3984,2827,9382,2938]
sale = [int(x*0.5) for x in pince]
print("原来价格:",pince)
print("打五折后价格:",sale)

运行结果如下:
在这里插入图片描述
3.从列表选择符合条件的元素值组成新的列表
格式:

newlist = [Expression for var in list if condition]
参数含义
newname生成的列表的名称
Expression表达式,用于计算新列表的元素
var变量,值为后面列表的每个元素值
list用于计算生成新列表的原列表
condition条件表达式,用于指定筛选条件

代码如下:

pince = [1200,1500,3984,2827,9382,2938]
sale = [x for x in pince if x>2000]
print("原来价格:",pince)
print("大于2000价格:",sale)

运行结果如下:
在这里插入图片描述
到这列表的知识就这些了,下一期说元组和字典。今天先就这样了!拜拜啊!

最后喜欢的话关注一下吧!

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我能突破限制.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值