一、数据容器
1.什么是数据容器?
一种可以存储多个元素的python数据类型
2.python有哪些数据容器?
list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)
(一)list(列表)
1.列表的定义
#字面量
[元素1,元素2,元素3,元素4,...]
#定义变量
变量名 = [元素1,元素2,元素3,元素4,...]
#定义空列表
变量名 = [ ]
变量名 = list()
注:以[ ]作为标识
列表内每个元素之间用逗号隔开
列表的元素可以是不同的数据类型
列表还可以嵌套(即以一个列表作为另外一个列表的元素)
a = ['hello', 123, True]
print(a) #打印列表a
print(type(a)) #打印变量a的类型
#运行结果
['hello', 123, True]
<class 'list'>
#列表的嵌套
b=[[1,2,3], [4,6,7], [5,4,3]]
2. 列表的下标(索引)-正向
列表的每个元素,都有其对应的位置下标索引,从左到右,从0开始,依次递增。
( 下标最大值=元素个数-1 )
#根据下标索引,取出对应位置的元素的方法
列表变量名[下标索引]
a = ['Tom', 'Lily', 'Rose']
print(a[0]) #结果:Tom
print(a[1]) #结果:Lily
print(a[2]) #结果:Rose
3. 列表的下标(索引)-反向
从后往前:从-1开始,依次递减(-1,-2,-3......)
a = ['Tom', 'Lily', 'Rose']
print(a[-1]) #结果:Rose
print(a[-2]) #结果:Lily
print(a[-3]) #结果:Tom
4.嵌套列表的下标
#取出内层列表元素的方法
列表变量名[外层下标][内层下标]
例如: a = [[1, 2, 3], [4, 5, 6]]
a[0][0]是:1 a[0][1]是:2 a[0][2]是:3
a[1][0]是:4 a[1][1]是:5 a[1][1]是:6
5.列表方法
①查找某元素的下标
语法:列表变量名.index(要查找的元素)
功能:查找指定元素在列表的下标,如果找不到,报错ValueError
例如: a = ['hello', 'world', 'Kitty']
print(a.index( 'Kitty')) #结果:2
print(a.index( 'Hi')) #结果:ValueError: 'Hi' is not in list
②修改列表特定位置的元素值
语法:列表变量名[下标] = 值
例如:
a = [1, 2, 3]
a[0]=5
print(a) #结果:[5, 2, 3]
③插入元素
语法:列表变量名.insert(下标, 元素)
功能:在列表指定下标位置,插入指定元素
例如:
a = [1, 2, 3]
a.insert(1, 'hello')
print(a) #结果:[1, 'hello', 2, 3]
④追加单个元素
语法:列表变量名.append(元素)
功能:将指定元素,追加到列表的尾部
例如:
a = [1, 2, 3]
a.append('hello')
print(a) #结果:[1, 2, 3, 'hello']
⑤追加一批元素
语法:列表变量名.extend(其它数据容器)
功能:将其它数据容器的内容取出,依次追加到列表的尾部
例如:
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)
print(a) #结果[1, 2, 3, 4, 5, 6]
⑥删除元素
语法:(1)del 列表变量名[下标]
列表变量名.pop[下标]
功能:删除列表指定下标的元素
区别:del仅仅只能删除元素,而pop不仅能够删除元素,还能够将删除的元素作为返 回值。
(2)列表变量名.remove(元素)
功能:删除某元素在列表中从左到右的第一个匹配项
(3)列表变量名.clear()
功能:清空列表
例如:
a = ['小明', '小华', '小红']
del a[2]
print(a) #结果:['小明', '小华']
b = a.pop(1)
print(b) #结果:['小华']
print(a) #结果:['小明']
a = [0, 'hello', 1, 'hello', 2, 3]
a.remove('hello')
print(a) #结果:[0,1, 'hello', 2, 3]
a = [1, 2, 3]
a.clear()
print(a) #结果:[]
⑦ 统计某元素在列表内的数量
语法:列表变量名.count(元素)
例如:
a = [1, 1, 1, 1, 2, 3]
b = a.count(1)
print(b) #结果:4
⑧统计列表有多少个元素
语法:len(列表)
例如:
a = [1, 2, 3]
b = len(a)
print(b) #结果:3
6.列表的循环遍历
语法: for 临时变量 in 数据容器:
对临时变量进行处理
例如:
a = [1, 2, 3, 4]
for b in a:
print(b)
#结果
1
2
3
4
(二)tuple元组
1.元组的定义
定义元组使用小括号(),且使用逗号隔开各个元素,数据可以是不同的数据类型。
语法:
#定义元组字面量
(元素1,元素2,元素3,............)
#定义元组变量
变量名 = (元素1,元素2,元素3,............)
#定义空元组
变量名 =()
变量名 = tuple()
2.元组与列表的区别
列表可以修改,但是元组定义完成后,就不能够修改。
3.元组的下标
语法:元组变量名[下标]
( 含嵌套元组时:元组变量名[外层元组下标][内层元组下标] )
例如:
a = (1, 2, 3, 4)
print(a[1]) #结果:2
b = ((1,2,3), (4,5,6))
print(b[1][1]) #结果:5
4.元组方法
①查找某个元素的下标
语法:元组变量名.index(元素)
②统计某个元素在元组内出现的次数
语法:元组变量名.count(元素)
③计算元组元素个数
语法: len(元组)
例如:
a = (1, 2, 3, 4, '你好', '你好')
print(a.index(4)) #结果:3
print(a.count('你好')) #结果:2
print(len(a)) #结果:6
(三)字符串(str)
1.字符串的下标(索引)
从前向后,下标从0开始
从后向前,下标从-1开始
#通过下标获取指定位置字符
语法:字符串变量名[下标]
例如:
a = 'Hello'
print(a[0]) #结果: H
print(a[-1]) #结果: o
2.字符串的常用操作
(四)集合(set)
1.集合的特点
元素不支持重复,会自动去重;元素之间是无序,即没有下标索引。
2.集合的定义
定义集合字面量: {元素1, 元素2, 元素3, ..........}
定义集合变量:变量名称 = {元素1, 元素2, 元素3, ..........}
定义空集合:变量名称 = set( )
代码示例:
set = {1, 2, 3, 1}
print(set) #结果是:{1, 2, 3}
3.集合的常用操作方法
①add添加新元素
语法:集合.add(元素)
代码示例:
set = {1, 2, 3}
set.add(4)
print(set) #结果是:{1, 2, 3, 4}
②remove移除元素
语法:集合.remove(元素)
代码示例:
set = {1, 2, 3}
set.remove(1)
print(set) #结果是:{1, 2}
③pop随机删除元素,有返回值
语法:集合.pop( )
代码示例:
set = {1, 2, 3}
a = set.pop( )
print(f"随机删除后的集合是:{set}, 删除的元素是:{a}")
#结果是:{1, 2} 3
④clear清空集合
语法:集合.clear( )
代码示例:
set = {1, 2, 3}
set.clear( )
print(set) #结果是:set()
⑤difference取出两个集合的差集
语法:集合1.difference(集合2)
功能:取出集合1和集合2的差集(集合1有而集合2没有的),得到一个新的 集合
代码示例:
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)
print(set3) #结果是:{2, 3}
⑥difference_update消除两个集合的差集
语法:集合1.difference_update(集合2)
功能:在集合1内,删除与集合2相同的元素
代码示例:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.difference_update(set2)
print(set1) #结果是:{1}
⑦union合并两个集合
语法:集合1.union(集合2)
功能:将集合1和集合2合并成, 得到一个新的集合
代码示例:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = set1.union(set2)
print(set3) #结果是:{1, 2, 3, 4}
⑧len统计集合元素个数
语法:len(集合)
代码示例:
set = {1, 2, 3, 3}
a = len(set)
print(a) #结果是:3
⑨集合的for循环遍历
代码示例:
set ={'a', 'b', 'c'}
for ii in set:
具体操作
(五)字典
1.字典的定义
(1) 使用花括号{ },元素是键值对(key: value),元素之间使用逗号分隔
(2)语法:#定义字典变量
字典变量名 = {key1: value, key2: value, key3: value,.......}
(3) 注意:①键值对的key和value可以是任意的数据类型(key不能是字典)
②key不能重复
例如:a = {'小明': 99, '小华': 88, '小红': 77 }
2.字典通过key获取对应的value
语法:字典变量名 [key]
例如:a = {'小明': 99, '小华': 88, '小红': 77 }
a['小明'] #得到99
3.字典的嵌套
由于键值对中的value可以是任意的数据类型,那么当value也是字典时,就形成字典嵌套
(1) 语法:{key1: {key1:value, key2: value}, key2: {key1: value, key2: value}}
(2)字典嵌套时通过key获取对应的value:
(获取第一层key的value)字典变量名[第一层key]
(获取最内层key的value) 字典变量名[第一层key][第二层key]
例如:a ={'小明': { '数学': 100, '语文': 100}, '小华': {'数学': 99, '语文': 99}}
#获取小明语文分数的方法
a['小明']['语文']
4.字典的常用操作
(1)新增元素:字典变量名[key] = value
(2)更新元素:字典变量名[key] = value
(3)删除元素:字典变量名.pop[key]
(4)清空字典:字典变量名.clear()
(5)获取字典全部的key: 字典变量名.keys()
(6)计算字典元素的数量:len(字典)
二、函数专题
1.函数的定义
代码示例:
2.函数的参数
3.函数的返回值
代码示例:
4.函数的注释方法
代码示例:
三、捕获异常
注: else和finally是可以省略的
代码示例: