2025-05-01

1. 序列的通用操作

1.序列结构主要有:列表、元组、集合、字典和字符串

2.序列的通用操作包括:索引、切片、序列相加、乘法、检查某个元素是否是序列成员和计算序列的长度、最大值和最小值

3.集合和字典不支持:索引、切片、相加和相乘操作

1.1 索引

verse=['春眠不觉晓','Python不得了','夜来爬数据','好评知多少']

print(verse[0]) # 春眠不觉晓

print(verse[2]) # 夜来爬数据

print(verse[-1])    # 好评知多少

1.2 切片

切片语法格式:

sname[start:end:step]

参数说明:

sname:序列名称

start:序列开始位置(包括该位置),如果不指定,则默认为0

end:序列结束位置(不包括该位置),如果不指定,则默认为序列的长度

step:步长,如省略则默认为1,当省略步长时,最后一个冒号也可以省略

nba=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

print(nba[1:5]) # ['拉塞尔', '贾巴尔', '科比', '奥尼尔']

print(nba[0:5:2])  # ['乔丹', '贾巴尔', '奥尼尔']

1.3 序列相加

相同数据类型的序列可以相加,相同数据类型是指同为列表、元组,序列中的元素类型可以不同

nba1=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba2=[1,2,3,4,5,6,7,8]

print(nba1+nba2)    # ['乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯', 1, 2, 3, 4, 5, 6, 7, 8]

1.4 乘法

nba1=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明']

print(nba1*2)# ['乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明',  '乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明']

还可以实现初始化指定长度列表的功能:

emptylist=[None]*5

print(emptylist)

1.5 检查某个元素是否是序列成员

语法格式:

value in sequence # 检查是否包含元素

value not in sequence # 检查是否不包含

参数说明:

value:要检查的元素

sequence:指定的序列

nba1=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

print('乔丹'innba1) # True

nba1=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

print('乔丹'notinnba1) # False

1.6 计算序列的长度、最大值和最小值

计算序列的长度

nba1=['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

print(len(nba1))    # 7

最大值

nba1 = ['1','4','5','3','9','7','8']

print(max(nba1))# 9

最小值

nba1 = ['1','4','5','3','9','7','8']

print(max(nba1))# 1

2.列表

2.1 列表的创建和删除

创建列表

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

创建空列表

nba1 = []

创建数值列表

# list()函数可以将数值直接转换成列表

# range()函数是取值范围

re = list(range(10,20,2))

print(re)

删除列表

del listname

删除列表在实际开发中不常用,因为python自带垃圾回收机制

2.2 访问列表元素

verse = ['春眠不觉晓','Python不得了','夜来爬数据','好评知多少']

print(verse)# ['春眠不觉晓','Python不得了','夜来爬数据','好评知多少']

print(verse[0])# 春眠不觉晓

print(verse[2])# 夜来爬数据

print(verse[-1])# 好评知多少

2.3 遍历列表

直接for循环实现

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

for item in nba1:

print(item)

输出为:

乔丹

拉塞尔

贾巴尔

科比

奥尼尔

姚明

邓肯

使用for循环和enumerate()函数实现

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

for index,item in enumerate(nba1):

print(index,item)

输出为:

0 乔丹

1 拉塞尔

2 贾巴尔

3 科比

4 奥尼尔

5 姚明

6 邓肯

2.4 添加、修改和删除列表元素

在列表末尾添加一个元素

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba1.append('飞飞')

print(nba1)# ['乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯', '飞飞']

在指定位置添加元素(执行效率低,一般不使用)

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba1.insert(2,'凡凡')

print(nba1)# ['乔丹', '拉塞尔', '凡凡', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯']

将一个列表中的元素添加到另一个列表

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba2 = ['1','4','5','3','9','7','8']

nba1.extend(nba2)

print(nba1)# ['乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯', '1', '4', '5', '3', '9', '7', '8']

将一个列表中的元素添加到另一个列表,使用+也可使实现功能,但是比对两个代码发现:extend()不会产生新的列表

修改元素

nba1 = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba1[0] = '飞飞'

print(nba1)# ['飞飞', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯']

删除元素

根据索引删除

nba = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

del nba[-1]

print(nba)# ['乔丹', '拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明']

根据元素值删除

nba = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯']

nba.remove('乔丹')

print(nba)# ['拉塞尔', '贾巴尔', '科比', '奥尼尔', '姚明', '邓肯']

根据元素值删除时如果元素不存在,则会报错,可以删除前先判断元素是否存在。判断元素是否存在可以用count()统计元素出现的次数。

2.5 对列表进行统计和计算

获取指定元素出现的次数

nba = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯','科比','奥尼尔','科比','奥尼尔']

print(nba.count('科比'))# 3

获取指定元素首次出现的下标

nba = ['乔丹','拉塞尔','贾巴尔','科比','奥尼尔','姚明','邓肯','科比','奥尼尔','科比','奥尼尔']

print(nba.index('科比'))# 3

统计列表元素的和

grade = [15,16,20,13,18]

print(sum(grade))# 82

'''

sum(listname,start)

listname:要统计的列表

start:统计结果从哪个数开始,即统计结果加上start指定的数

'''

grade = [15,16,20,13,18]

print(sum(grade,10))# 92

2.6 对列表进行排序

使用列表对象的sort()方法

语法:

listname.sort(key=None,reverse=False)

liastname:要排序的列表

key:排序规则,例如:key=str.lower表示排序时不区分大小写

reverse:可选参数,如果将其设置为True,表示降序排序;设置为False,表示升序排序,默认为升序排序。

# 默认升序

grade = [15,16,20,13,18]

grade.sort()

print(grade) # [13, 15, 16, 18, 20]

# 降序

grade = [15,16,20,13,18]

grade.sort(reverse = True)

print(grade) # [20, 18, 16, 15, 13]

# 默认区分大小写

grade = ['cat','Tom','pet','Angela']

grade.sort()

print(grade)# ['Angela', 'Tom', 'cat', 'pet']

# 区分大小写

grade = ['cat','Tom','pet','Angela']

grade.sort(key = str.lower)

print(grade)# ['Angela', 'cat', 'pet', 'Tom']

使用内置sorted()函数实现

语法:

sorted(liastname,key=None,reverse=False)

liastname:要排序的列表

key:排序规则,例如:key=str.lower表示排序时不区分大小写

reverse:可选参数,如果将其设置为True,表示降序排序;设置为False,表示升序排序,默认为升序排序。

grade = [15,16,20,13,18]

grade_re = sorted(grade)

print(grade_re)

sort()方法是直接修改原列表

sorted()函数会产生一个新列表,原列表不变

2.7 列表推导式

生成指定范围的数值列表

语法格式:

list = [Expression for var in range]

list:生成的列表名称

Expression:表达式,计算新列表的元素

var:循环变量

range:采用range()函数生成range对象

# 从10~100之间取7个数

import random

li = [random.randint(10,100) for i in range(7)]

print(li)

根据列表生成指定需求的列表

语法格式:

newlist = [Expression for var in list]

newlist:生成的列表名称

Expression:表达式,计算新列表的元素

var:循环变量

list:用于生成新列表的原列表

oldlist = [100,80,50,30,90]

newlist = [int(i*0.5) for i in oldlist]

print(newlist)# [50, 40, 25, 15, 45]

从列表中选择符合条件的元素组成新的列表

语法格式:

newlist = [Expression for var in list if condition]

newlist:生成的列表名称

Expression:表达式,计算新列表的元素

var:循环变量

list:用于生成新列表的原列表

condition:条件表达式,用于指定筛选条件

oldlist = [100,80,50,30,90]

newlist = [x for x in oldlist if x > 50]

print(newlist)# [100, 80, 90]

2.8 二维列表

直接定义二维列表

verse = [

['千','山','鸟','飞','绝'],

['万','径','人','踪','灭'],

['孤','舟','蓑','笠','翁'],

['独','钓','寒','江','雪']

]

使用嵌套的for循环创建

verse = []

for i in range(4):

verse.append([])

for j in range(4):

verse[i].append(j)

print(verse)# [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

使用列表推导式创建

verse = [[j for j in range(5)] for i in range(4)]

print(verse)# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]

二维列表实例

str1 = '千山鸟飞绝'

str2 = '万径人踪灭'

str3 = '孤舟蓑笠翁'

str4 = '独钓寒江雪'

verse = [list(str1),list(str2),list(str3),list(str4)]

# 横板显示

for i in range(4):  # 读取每一行

for j in range(5):  #读取每一行第一个字

print(verse[i][j],end = '')

print()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容