3.1 序列
3.1.1 索引
序列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,以此类推。
索引可以是负数。这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引值是-1,倒数第二个元素的索引值为-2,以此类推。
注意:在采用负数作为索引值时,是从-1开始的,而不是从0开始的,即最后一个元素的下标为-1,这是为了防止与第一个元素重合。
3.1.2 切片
实现切片操作的格式
sname[start:end:step]
说明:
sname:表示用户创建的序列的名称
start:表示切片的开始位置(包括),如果不指定,默认为0
end:表示切片的截止位置(不包括),如果不指定,默认为序列的长度.
step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
3.1.3 序列相加
在Python中,支持两种相同类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用加(+)运算符实现。
说明:在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。
注意:不能将列表和元组相加,也不能将列表和字符串相加。
3.1.4 检查某个元素是否是序列的成员
语法格式
value in sequence
实例:
number = [1,2,3,4,5]
print(6 in number)
运行上面的代码,将显示结果True,表示在序列中存在指定的元素;如果显示为False则表示不在序列里
3.1.5 计算序列的长度、最大值和最小值
函数 | 作用 |
---|---|
list() | 将序列转换为列表 |
str() | 将序列转换为字符串 |
sum() | 计算元素和 |
sorted() | 对元素进行排序 |
reversed() | 反向序列中的元素 |
enumerate() | 将序列组合为一个索引序列,在for循环中用得比较多 |
3.2 列表
3.2.1 列表的创建和删除
三种创建列表的方法
1️⃣ 使用赋值运算符直接创建列表
语法格式
listname = [元素1,元素1,元素2,元素3,...,元素n]
2️⃣ 创建空列表
emptylist = []
3️⃣ 创建数值列表
在Python中,可以使用list)函数直接将range()函数循环出来的结果转换为列表。
list()函数的基本语法如下:
list(data)
实例:创建1~10(不包括10)的所有偶数的列表。
list(range(1,10,2))
4️⃣ 删除列表
对于已经创建的列表,不再使用时,可以使用del语句将其删除。语法格式如下:
del listname
3.2.2 访问列表元素
直接使用print()函数打印即可
3.2.3 遍历列表
1️⃣ 直接使用for循环语句直接使用for循环遍历列表,只能输出元素的值。
for i in listname:
print(i)
2️⃣ 使用for循环和enumerate()函数实现
使用for循环和enumerate()函数可以实现同时输出索引值和元素内容
for index, item in enumerate( listname):
3.2.4 添加、修改和删除列表元素
1️⃣ 添加元素
listname.append(obj) #只能添加一个元素
listname.extend(seq) #添加一个序列seq的全部元素
2️⃣ 修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可。
3️⃣ 删除元素
删除元素主要有两种情况,一种是根据索引删除,另一种是根据元素值进行删除。
□ 根据索引删除
listname = ["王者荣耀","绝地求生","穿越火线"]
del listname[0] # 删除王者荣耀
print(listname) # 查看
□ 根据元素值删除
listname = ["王者荣耀","绝地求生","穿越火线"]
listname.remove("王者荣耀") # 删除王者荣耀
print(listname) # 查看
3.2.5 对列表进行统计和计算
1️⃣ 获取指定元素出现的次数
使用count()实现,语法如下:
listname.count(obj)
参数说明:
listname :表示列表的名称。
obj :表示要判断是否存在的对象,这里只能进行精确匹配,即不能是元素值的一部分。
返回值:元素在列表中出现的次数。
2️⃣ 获取指定元素首次出现的下标
使用列表对象的index()方法可以获取指定元素在列表中首次出现的位置(即索引)。基本语法格式如下:
listname.index(obj)
3️⃣ 3.统计数值列表的元素和
在Python中,提供了sum()函数用于统计数值列表中各元素的和。语法格式如下:
sum(iterable[,start])
参数说明:
iterable:表示要统计的列表。
start:表示统计结果是从哪个数开始(即将统计结果加上start所指定的数),是可选参数,若未指定,则默认为0。
3.2.6 对列表进行排序
在实际开发时,经常需要对列表进行排序,Python 中提供了两种常用的对列表进行排序的方法:
1️⃣ 使用列表对象的sort()方法
listname.sort(key=None, reverse=False)
参数说明:
listname :表示要进行排序的列表。
key: 表示指定从每个元素中提-一个用于比较的键(例如,设置“key=str.lower”表示在排序时不区分字母大小写)。
reverse: 可选参数,如果将其值指定为 True,则表示降序排列;如果为False, 则表示升序排列,默认为升序排列。
使用sort()方法进行数值列表的排序比较简单,但是使用sort()方法对字符串列表进行排序时,采用的规则是先对大写字母排序,然后再对小写字母排序.
2️⃣ 使用内置的sorted()函数实现
在Python中,提供了一个内置的sorted)函数,用于对列表进行排序。使用该函数进行排序后,原列表的元素顺序不变。storted() 函数的语法格式如下:
sorted(iterable, key=None, reverse=False)
参数说明:
iterable:表示要进行排序的列表名称。
key: 表示指定从每个元素中提取一个用于比较的键(例如,设置“key=str.lower” 表示在排序时不区分字母大小写)。
reverse: 可选参数,如果将其值指定为True,则表示降序排列;如果为False, 则表示升序排
列,默认为升序排列。
3.2.7 列表推导式
1️⃣ 生成指定的范围的数值列表
语法格式:
list = [Expression for var in range]
参数说明:
list:表示生成的列表名称。
Expression :表达式,用于计算新列表的元素。
var:循环变量。
range :采用range()函数生成的range对象。
实例:
import random
list = [random.randint(10,100) for i in range(10)] # 要生成一个包括10个随机数的列表,要求数的范围在10~100(包括)之间,
print("生成的随机数为:",list)
2️⃣ 根据列表生成指定需求的列表
语法格式如下:
newlist = [Expression for var in list]
参数说明:
newlist:表示新生成的列表名称。
Expression:表达式,用于计算新列表的元素。
var:变量,值为后面列表的每个元素值。
list:用于生成新列表的原列表。
实例:给定一个商品的价格列表,然后推出商品打五折后的列表。代码如下:
price = [20,35,30,42,41,67]
sale = [int(x*0.5) for x in price]
print("原价:",price)
print("五折后价格:",sale)
3️⃣ 从列表中选择符合条件的元素组成新的列表,语法格式如下:
newlist = [Expression for var in list of condition]
参数说明:
newlist:表示新生成的列表名称。
Expression:表达式,用于计算新列表的元素。
var:变量,值为后面列表的每个元素值。
list :用于生成新列表的原列表。
condition:条件表达式,用于指定筛选条件。
实例:给定一个商品的价格列表,然后生成商品价格高于40元的列表,代码如下:
price = [20,35,30,42,41,67]
sale = [x for x in price if x > 40]
print("原价:",price)
print("价格高于40元的:",sale)
3.2.8 二维列表的使用
二维 列表中的信息以行和列的形式表示,第一个下标代表元素所在的行,第二个下标代表元素所在的列。
1️⃣ 直接定义二维列表
listname = [[元素11,元素12,...,元素1n],[元素21,元素22,...,元素2n],...,[元素n1,元素n2,...,元素nn]]
2️⃣ 使用嵌套的for循环创建
3️⃣ 使用列表推导式创建(详见3.2.7)
3.3 元组
3.3.1 元组的创建与删除
1️⃣ 使用赋值运算符直接创建元组
tuplename = (元素1,元素2,...,元素n)
2️⃣ 创建空元组
emptytuple = ()
3️⃣ 创建数值元组
tuple(data)
实例:
tuple(range(0,10,1))
4️⃣ 删除元组
del tuplename
3.3.2 访问元组元素
s = ('Python','云南')
print(s)
3.3.3 修改元组元素
同列表,只是将[ ]换为( )
3.3.4 元组
同列表,只是将[ ]换为( )
3.4 字典
3.4.1 字典的创建与删除
格式:
dictionary =
{ key1' : 'value1', 'key2' :'value2',..., 'keyn': 'valuen',}
参数说明:
dictionary :表示字典名称。
key1、key2..keyn: 表示元素的键,必须是唯一的, 并且不可变
valuel、value2、valuen:表示元素的值,可以是任何数据类型,不是必须唯一的
1️⃣ 通过映射函数创建字典
dictionary = dict(zip(list1,list2))
参数说明:
dictionary :表示字典名称。
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用tuple() 函数转换为元组;如果想获取列表,则可以使用list()函数将其转换为列表。
2️⃣ 通过给定的关键字参数创建字典
dictionary = dict(key1=value1,key2=value2,keyn=valuen)
3.4.2 通过键值对访问字典
dictionary.get(key[, default])
参数说明:
dictionary:为字典对象,即要从中获取值的字典。
key:为指定的键。
default:为可选项,用于指定当指定的“键”不存在时,返回一个默认值,如果省略,则返回None。
3.4.3 遍历字典
使用字典对象的items()方法可以获取字典的“键-值对”列表,语法格式如下:
dictionary.items( )
3.4.4 添加、修改和删除字典元素
添加格式:
dictionary[key] = value
3.5 集合
3.5.1 集合的创建
1️⃣ 直接使用“{}”创建集合
setname = {元素1,元素2,...,元素n}
2️⃣ 使用set()函数创建
setname = set(iteration)
3.5.2 集合的添加和删除
1️⃣ 向集合中添加元素
setname.add(element)
2️⃣ 从集合中删除元素
setname.remove(元素)
3.5.3 集合的交集、并集和差集运算
集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号,进行并集运算时使用“|”符号,进行差集运算时使用“-”符号,进行对称差集运算时使用“^”符号。
3.6 列表、元组、字典和集合的区别
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
---|---|---|---|---|
列表(list) | 可变 | 可重复 | 有序 | [ ] |
元组(tuple) | 不可变 | 可重复 | 有序 | () |
字典(dictionary) | 可变 | 可重复 | 无序 | {key:value} |
集合(set) | 可变 | 不可重复 | 无序 | {} |