前言
这是我在CSDN上继第一篇规划后,正式的第一篇技术博客,python是这学期学校要求学的一门语言,我也是基本在网上自学,在我学习数据容器这一块时感觉内容非常多,学完第一遍后,几天没用就感觉这块知识很混乱,所以准备写这篇博客来整理这块的知识,希望对大家有所帮助,我使用的IDE为pycharm2023版,另外文章后面有我gitee仓库地址,大家可以直接下载代码阅览,废话不多说,我们直接上干货
一、列表 list[]
1.列表的定义
- 列表使用中括号
- 空列表有: 变量名=[] 变量名=list() 两种方法
- 列表定义:中括号,元素类型不限,逗号分隔,列表支持钦套所有数据容器
以下为列表、元组、字符串、集合、字典嵌套
2.列表的下标索引
python列表我感觉与c语言的数组下标引用很相似,但是在python中,列表的下标支持正方向和负方向
正方向(元素从左到右):0 1 2 3...
负方向 (元素从左到右) :...-4 -3 -2 -1
以下使用了循环遍历
注意:如果列表嵌套了一个列表可以使用双[]进行引用修改
3.列表.index(元素)方法
功能:返回指定元素下标(正方向)
注意:一次只能传一个元素
4.列表.insert(下标,元素)方法
功能:在列表指定下标位置插入一个新元素
注意:一次只能传一个下标和一个元素
5.列表.append(元素)方法
功能:在列表末尾添加指定元素
注意:一次只能添加一个元素
6.列表.extend(数据容器)方法
功能:在列表末尾添加一批元素
数据容器可以是其他数据容器,比如元组,字符串,集合,字典(只会保留key值)
7.语法:del 列表[下标]
功能:删除列表中对应下标的元素
8.列表.pop(下标)方法
功能:取出列表对应下标的元素,列表中该元素会被消除
注意:一次只能传一个下标
9.列表.remove(元素)方法
功能:移除指定元素,如有重复,移除第一个(左至右)
注意:一次只能传入一个元素
10.列表.count(元素)方法
功能:返回被统计的某个元素在列表中的数量
11.函数:len(列表)
功能:返回被统计的列表的元素个数
12.列表.clear()方法
功能:清空列表
注意:不传参
13.循环遍历
小结:
以上为python列表的常用方法和函数,python列表一共有大约35种方法,具体可以参考python官方文--3.12.2 Documentation (python.org)
列表的应用场景:一批数据,可修改,可重复的存储场景
二、元组 tuple()
1.元组的定义
- 元组使用小括号
- 元组元素不支持修改,其余功能与列表相同,如下标索引,循环遍历,存储任意类型元素
- 元组也有两种空元组定义方式:变量名 = ()或 变量名 = tuple()
2.元组下标索引
同列表一样支持正方向和负方向
注意:如果元组嵌套了一个列表或另外一个元组,可以使用双[]引用
3.元组.index(元素)方法
功能:返回指定元素下标(正方向)
4.元组.count(元素)方法
功能:返回被统计的某个元素在元组中的数量
5.函数:len(元组)
功能:返回被统计的元组的元素个数
小结:
元组的方法比较少,还有一些数据容器通用的方法,在后面有说
元组的应用场景:一批数据,不可修改,可重复的存储场景
元组的循坏遍历与列表相同,同样可以使用for和while两种循环(写法相同)
三、字符串 str
1.字符串的定义
- 字符串也是数据容器,用来存储字符,支持下标索引,但不支持修改字符元素
- 空字符串也有两种定义:变量名 = "" 或 变量名 = str()
2.字符串的下标索引
同列表元组一样也有正负方向的索引
3.字符串.index(字符)方法
功能:返回指定字符下标(正方向)
4.字符串.replace(str1,str2)方法
功能:将str1内容替换为str2,返回替换后的str1,但不改变原str1和str2字符串内容,str1的位置也可以写想要替换的部分字符,str2为想要替换成的内容
5.字符串.split(字符)方法
功能:把字符串按某一字符分割成一个列表,返回该列表
下图为按空格字符切割
6.字符串.strip()方法
功能:不传参,去除字符串前后空格和换行符等空白字符,传参,去除字符串中传入的字符
注意:传入字符是两个及两个以上时,不看顺序,例如:传入"12",那么字符串中12和21都会被消除
7.字符串.count(字符)
功能:返回被统计的某个字符在字符串中的数量
8.函数 len(字符串)
功能:返回被统计的字符串的字符个数
小结:
以上为字符串的常用方法,当然还有很多其他的方法,虽然我也只知道这么多哈哈,剩下的有兴趣
也可以去官方文档查看
字符串的应用场景:一串字符串的存储场景
字符串同样支持for和while两种循环遍历,写法和列表相同
四、序列
1.序列的定义
序列:内容连续,有序,可使用下标索引的一类数据容器,如列表,元组,字符串
2.序列的切片操作
语法:序列[起始下标:结束下标:步长]
意义:表示从序列中,从指定位置开始,依次取出元素,到指定位置(不含)结束,得到一个新序列
- 起始下标:表示从何处开始,可以留空,留空视作从头开始,也就是0
- 结束下标(不含):表示何处结束,可以留空,留空视作截取到结束
- 步长:表示依次取元素的间隔
- 步长1表示,一个个取元素(步长1可以省略)
- 步长2表示,每次跳过1个元素取
- 步长N表示,每次跳过N-1个元素取
- 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
注意:结束下标如果不留空,例如4,那么切片会截取到下标3,而不含4
小结:gitee地址
前面列表、元组、字符串以及序列,代码仓库地址为:24_3_31/test.py · 心鹏编程/心鹏Python语言仓库 - 码云 - 开源中国 (gitee.com)
五、集合 set{}
1.集合的定义
- 集合使用大括号
- 集合相比列表、元组、字符串,最大的特点就是:集合不支持元素重复,也就是带去重功能,不支持下标索引,并且元素无序,但是支持元素修改
- 定义语法:变量名 = {元素,元素...}, 空集合:变量名 = set(),并且只有这一种空集合定义方式
- 注意集合里的元素不能为列表、字典、而且集合也不能嵌套另一个集合,集合里元素可以为元组、字符串
以下是元素为列表、集合、字典时的报错信息
列表
集合
字典
2.集合.add(元素)方法
功能:将指定元素添加到集合内
注意:一次只能传一个元素
3.集合.remove(元素)方法
功能:将指定元素从集合内移除
注意:一次也只能传一个元素
4.集合.pop()方法
功能:随机从集合里取出元素,并且取出的元素会从集合里消失
注意:不需要传参
5.集合.clear()方法
功能:清空集合
6.集合1.difference(集合2)方法
功能:取出集合1中有的而集合2没有的元素,也叫集合1和集合2的差集,然后返回差集的集合,并且集合1和集合2不会被修改
7.集合1.difference_update(集合2)方法
功能:在集合1内消除与集合2相同的元素,所以集合1会被修改而集合2不会
等同于把集合1和集合2的差集赋给了集合1
8.集合1.union(集合2)
功能:返回由集合1和集合2组合成的新集合,而集合1和集合2不会发生变化
9.函数 len(集合)
功能:返回元素个数
10.集合的遍历
注意:集合的循环遍历仅支持for循环,不支持while循环,因为集合不支持下标索引
小结:
以上为集合的常用方法和函数
而集合的应用场景为:一批数据,去重存储场景
集合支持for循环遍历,但不支持while循环遍历
六、字典 dict{}
1.字典的定义
- 字典语法也是使用大括号
- 存储的元素是一个个键值对 字典名 = {key:value, key:value, ...key: value}
- 字典中的key不允许重复,但是重复不会导致报错,重复的key后面的会覆盖前面内容,另外,字典支持嵌套字典使用,支持元素修改
- 字典不支持下标索引,唯一的引用方式是通过key来取得对应的value,而key可以为除列表、集合、字典以外类型,比如整形、浮点型、字符型、元组类型(报错情况与集合类似)
- 而value可以为任意类型
- 空字典有两种定义方式:变量名 = {} 或 变量名 = dict()
2.字典的key值索引
语法:字典[key] 可以返回key对应的value值
另外,使用 字典[key] = value
有两个效果:1.如果key存在,即修改对应的value值。2.如果key不存在,即新增一个元素
3.字典的嵌套
嵌套一个字典,即value对应的地方为一个字典
除此之外,嵌套任意数据容器都行
4.字典.pop(key)方法
功能:取出key对应的value值,同时字典中该键值对被消除
5.函数 len(字典)
功能:可以返回字典的元素数量,即键值对数
6.字典.clear()方法
功能:清空字典
7.字典.keys()方法
功能:返回字典中的全部key,返回类型为 dict_keys ,原字典不变化
注意:不传参
8.字典的遍历
keys方法可以搭配for循环达到遍历字典的效果
也可以直接使用for循环达到遍历效果
注意:字典同样不支持while循环遍历
小结:gitee地址
以上为字典的常用方法和函数
字典的应用场景:一批数据,可用key检索value的存储场景
有关集合和字典的代码仓库地址:
24_4_3/text.py · 心鹏编程/心鹏Python语言仓库 - 码云 - 开源中国 (gitee.com)
七、分类
- 是否支持下标索引
- 支持:列表、元组、字符串 —— 序列类型
- 不支持:集合、字典 —— 非序列类型
- 是否支持重复元素
- 支持:列表、元组、字符串 —— 序列类型
- 不支持:集合、字典 —— 非序列类型
- 是否可以修改
- 支持:列表、集合、字典
- 不支持:元组、字符串
八、数据容器的通用操作
1.len()函数
功能:计算元素个数
2.max()函数
功能:返回最大值(看ASCII码值)
注意:字典是比较key值
3.min()函数
功能:返回最小值(看ASCII码值)
注意:字典是比较key值
4.list(数据容器)
功能:返回被强制转换为列表的列表,不会影响原数据容器类型和内容
注意:字典只会保留key值
5.tuple(数据容器)
功能:返回被强制转换为元组的元组,不会影响原数据容器类型和内容
注意:字典只会保留key值
6.str(数据容器)
功能:返回被强制转换为字符串的字符串,不会影响原数据容器类型和内容
注意:字典内容会被全部保存
注意:以上我们发现强制转为字符串好像什么都没有改变,包括字典,其实是pycharm在输出时去掉了双引号,本质已经是字符串了
如图
7.set(数据容器)
功能:返回被强制转换为集合的集合,不会影响原数据容器类型和内容
注意:字典只会保留key值
8.sorted(容器,reverse=True)
功能:当我们不传reverse参数时,它默认是False,此时函数会返回该容器元素从小到大排列的列表,如果传参True,则返回元素从大到小的列表
注意:不会影响原数据容器类型和内容,并且是以ASCII码值进行排序
reverse不传参:
reverse传参True:
reverse传False
小结:gitee地址
在max()、min()函数中,是以ASCII码值比较
在容器类型的强制转换中,除了str()会保留字典的全部内容,其他的强制转换会丢失字典的value值
并且没有强制转化为字典的语法,因为字典格式要求为键值对
在sorted(容器,reverse=True)中,reverse不传参与传参False效果一样
数据容器的通用操作代码仓库地址:
24_4_4/text.py · 心鹏编程/心鹏Python语言仓库 - 码云 - 开源中国 (gitee.com)
总结
以上就是数据容器的全部基础内容了,希望对大家有所帮助,如果有哪里写得不严谨或者出现错误,或者需要补充,可以在评论区指出来哦,我会很感谢大家的,有问题也可以提出来哦,我看到了一定会回复的