引言
在这一章,我们会先了解序列结构,然后学习高级的数据类型,OK,开始吧
序列
简介
序列是一块可存放多个值的连续内存空间,所有值按一定的顺序排列,每个值所在的位置都有一个编号,称其为索引,我们可以通过索引访问其对应值。
字符串就是序列结构,除此之外常见的序列结构还包括列表、元组等。
基本使用
索引
序列索引支持非负数和负数,索引为非负数,从 0
开始
str = 'Python'
print('str[0] str[-6] =', str[0], str[-6])
print('str[5] str[-1] =', str[5], str[-1])
切片
切片操作可以访问一定范围内的元素
语法:
sname[start : end : step]
- sname:表示序列的名称;
- start:开始索引位置(包括该位置),默认为 0;
- end:表示切片的结束索引位置(不包括该位置),默认为序列的长度;
- step:步长。
str = 'Python'
print(str[:3]) # Pyt
print(str[3:]) # hon
print(str[:]) # Python
负数步长-
在Python中,切片操作需要使用短横线-
来表示负数步长
s = "Alice"
print(s[::-1])
这将输出:
ecilA
Python中的负数步长在切片操作中表示反向步进。
相加
Python 支持类型相同的序列使用 +
作相加操作,该操作不会去除重复的元素
str1 = 'Python'
str2 = 'Python'
print('str1 + str2 --> ',str1 + str2) # PythonPython
相乘
Python 中,使用数字 n 乘以一个序列会生成新的序列,内容为原来序列被重复 n 次的结果。
str = "python"
print("2 * str =>", 2 * str) # pythonpython
元素是否在序列中
Python 使用 in
关键字检查某元素是否为序列的成员,语法如下:
val in seq
- val:要检查的元素;
- seq:指定的序列。
str = 'Python'
print('on'in str) # True
内置函数
函数 | 描述 |
---|---|
len() | 计算序列的长度 |
max() | 找出序列中的最大元素 |
min() | 找出序列中的最小元素 |
list() | 将序列转换为列表 |
str() | 将序列转换为字符串 |
sum() | 计算元素的和 |
sorted() | 对元素进行排序 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中 |
列表与元组
列表
简介
Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同;列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。
基本使用
创建列表
列表中所有元素都放在一个中括号 []
中,相邻元素之间用逗号 ,
分隔
l = [1024,"cc",5]
访问
通过索引来访问列表中的值,还可以使用:
来截取范围内的元素
l = [1024, 0.5, 'Python']
print('l[0] -->', l[0])
print('l[1:] -->', l[1:])
更新
除了对列表中现有元素进行修改以外,还可以使用append()
向列表中添加新元素
l = [1024, 0.5, 'Python']
# 修改列表中第二个元素
l[1] = 5
# 向列表中添加新元素
l.append('Hello')
print('l[1] -->', # l[1]) 1[1] --> 5
print('l -->', l) # l --> [1024, 5, 'Python', 'Hello']
删除
使用del
删除列表中的元素
l = [1024, 0.5, 'Python']
# 删除列表中第二个元素
del l[1]
print('l -->', l)
常用的方法
-
count()
统计列表中某个元素出现次数
l = ['d', 'b', 'a', 'f', 'd'] print("l.count('d') -->", l.count('d')) # 2
-
index()
查找某个元素在列表中首次出现的位置
l = ['d', 'b', 'a', 'f', 'd'] print("l.index('d') -->", l.index('d')) # 0
-
remove()
移除列表中某个值的首次匹配项
l = ['d', 'b', 'a', 'f', 'd'] l.remove('d') print("l -->", l) # l --> ['b', 'a', 'f', 'd']
-
sort()
对列表中的元素进行排序
l = ['d', 'b', 'a', 'f', 'd'] l.sort() print('l -->', l) # l --> ['a', 'b', 'd', 'd', 'f']
-
copy()
复制列表
l = ['d', 'b', 'a', 'f', 'd'] lc = l.copy() print('lc -->', lc) # lc --> ['d', 'b', 'a', 'f', 'd']
元组
简介
元组(tuple)与列表类似,但是元组是不可变的,元组常用于保存不可修改的内容。
基本使用
创建
元组中所有元素都放在一个小括号()中,相邻的元素之间用逗号,
分开
t = (1024,0.5,'python')
访问
与访问列表类似
t = (1024, 0.5, 'Python')
print('t[0] -->', t[0])
print('t[1:] -->', t[1:])
修改
元组中的元素不能被修改,我们要用重新赋值的方法进行操作
t = (1024, 0.5, 'Python')
t = (1024, 0.5, 'Python', 'Hello')
print('t -->', t)
删除
元组中的元素不能被删除,只能删除整个元组
t = (1024, 0.5, 'Python')
del t
print('t -->', t)
常用方法
-
len()
计算元组中元素个数
t = (1024, 0.5, 'Python') print('len(t) -->', len(t)) # 3
-
max()和min()
返回元组中最大最小值
t = ('d', 'b', 'a', 'f', 'd') print('max(t) -->', max(t)) print('min(t) -->', min(t))
-
tuple()
将列表转换为元组
l = ['d', 'b', 'a', 'f', 'd'] t = tuple(l) print('t -->', t) # t --> ('d', 'b', 'a', 'f', 'd')