Python数据容器
1、什么是数据容器
(1)一种可以用来存储多个元素的Python数据类型
(2)共有5种数据容器:list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)
2、列表的定义
列表中,每个元素的数据类型可以是不一样的
列表定义的实例
3、列表的下标索引
通过下标索引取出相应位置的数据,语法:列表[索引位置]
从前往后取数据,从0开始,每次+1
从后往前取数据,从-1开始,每次-1
list =[1,5,9,7,15,3]
# 从前往后读取第一个、第二个数据
print(list[0]) # 1
print(list[1]) # 5
# 从后往前读取第一个、第二个数据
print(list[-1]) # 3
print(list[-2]) # 15
# 读取嵌套数据
my_list = [[1,2,3,],[4,9]]
print(my_list[1][1]) # 9
4、列表的操作
(1)查询操作
查找某元素下标
功能:查找指定元素在列表的下标,如果找不到,报错
ValueError语法:
列表.index(元素)
统计某元素在列表内的数量
语法:
列表.count(元素)
统计列表内,有多少元素
语法:
len(列表)
(2)增加操作
插入元素
功能:在指定的下标位置,插入指定的元素
语法:
列表.insert(下标, 元素)
追加元素
功能:将指定元素,追加到列表的尾部
语法:
列表.append(元素)
追加数据容器
功能:将指定数据容器,追加到列表的尾部
语法:
列表.extend(数据容器)
(3)删除操作
删除元素(无返回值),根据下标
语法:
del 列表[下标]
删除元素(有返回值),根据下标
语法:
列表.pop(下标)
删除元素,根据元素内容
语法:
列表.remove(元素)
清空列表
语法:
语法:列表.clear()
(4)修改操作
修改特定位置(索引)的元素值:
语法:
列表[下标] = 值
(5)sort()和sorted()
sort()是应用在 list 上的方法,sorted()可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,
而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sort语法:
列表.sort()括号为空默认升序,列表.sort(reverse=True)为降序sorted语法:sorted(对象)
num = [1,10,15,2,4,2,7,9] print(sorted(num)) # 有返回值,不改变本身,默认升序排序 # [1, 2, 2, 4, 7, 9, 10, 15] print(sorted(num,reverse=True)) # 有返回值,不改变本身,降序排序 # [15, 10, 9, 7, 4, 2, 2, 1] num.sort() # 无返回值,改变本身,默认升序排序 print(num) # [1, 2, 2, 4, 7, 9, 10, 15] num.sort(reverse=True) # 无返回值,改变本身,降序排序 print(num) # [15, 10, 9, 7, 4, 2, 2, 1]
5、元组的定义
元组和列表一样,都是可以存储多个不同数据类型的元素在内
但是元组一旦定义完成,就不可以修改了
而列表定义完成,可以修改
实例展示
【注】:元组只有一个数据,这个数据后面要添加逗号
6、元组的操作
(1)查找某个数据所在位置 - index()
(2)统计某个数据出现次数 - count()
(3)统计一共有几个元素 - len()
7、字符串
字符串和元组一样,是一个不可以修改的,所以说和元组一样没有增加、删除、修改操作
查找特定字符串的下标索引值
字符串的替换
语法:
字符串.replace(字符串1,字符串2)功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串哦
字符串的分割
语法:
字符串.split(分隔符字符串)功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象
字符串的规整操作
去前后空格语法:
字符串.strip()去前后指定字符串语法:
字符串.strip(字符串)
如果传入一大串字符串,是按照单个字符去除还是一样,不是修改字符串本身,而是得到了新的字符串
统计字符串中某字符串的出现次数
语法:
字符串.count(字符串)
统计字符串的长度
语法:
len(字符串)
8、序列的切片操作
序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。
切片:从一个序列中,取出一个子序列
切片操作
语法:
序列[起始下标:结束下标:步长]起始下标表示从何处开始,可以留空,留空视作从头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
步长表示,依次取元素的间隔
# 从头到尾切片,步长默认1
list = [1,5,7,2,10,41,1]
new_list = list[:]
print(new_list) # [1, 5, 7, 2, 10, 41, 1]
# 从头到尾切片,步长2
list = [1,5,7,2,10,41,1]
new_list = list[::2]
print(new_list) # [1, 7, 10, 1]
# 从第1个到第4个切片,步长默认1
list = [1,5,7,2,10,41,1]
new_list = list[0:4]
print(new_list) # [1, 5, 7, 2]
# 从尾到头切片,步长默认1
list = [1,5,7,2,10,41,1]
new_list = list[::-1]
print(new_list) # [1, 41, 10, 2, 7, 5, 1]
# 从倒数第一到第2个切片,步长默认1
list = [1,5,7,2,10,41,1]
new_list = list[6:0:-1]
print(new_list) # [1, 41, 10, 2, 7, 5]
9、集合
列表可修改、支持重复元素且有序
元组、字符串不可修改、支持重复元素且有序
如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。
而集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序
因此因为集合是无序的,所以集合不支持:下标索引访问
添加新元素
语法:
集合.add(元素)功能:将指定元素,添加到集合内
移除元素
语法:
集合.remove(元素)功能:将指定元素,从集合内移除
从集合中随机取出元素
语法:
集合.pop()功能:从集合中随机取出一个元素
清空集合
语法:
集合.clear()功能:清空集合
取出2个集合的差集
语法:
集合1.difference(集合2)功能:取出集合1和集合2的差集(集合1有而集合2没有的)
结果:得到一个新集合,集合1和集合2不变
移除两个集合中都存在的元素。
语法:
集合1.difference_update(集合2)功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变
2个集合合并
语法:集合1.union(集合2)
功能:将集合1和集合2组合成新集合
结果:得到新集合,集合1和集合2不变
查看集合的元素数量
语法:len(集合)
功能:统计集合内有多少元素
10、字典
字典和集合一样不允许有重复的元素


评论