📔 Python基本数据类型 学习笔记
1. 可变和不可变类型¶
-
可变类型
:值改变,id不变
。- 证明改的是原值。证明原值可以被改变。
-
不可变类型
:值改变,id也会改变
。- 证明产生新的值,原值不会被改变(不可被改变)。
-
int是不可变类型
-
浮点型(float)也是不可变类型
-
str是不可变类型
-
bool
是不可变类型
总结:在python中,int、float、str被设计成一个整体,不可以被改变。
-
list是可变类型
-
dict是可变类型
2. 字符串类型¶
-
str可以将任意其他类型都转成字符串类型。
-
在Python中,有很多字符串的内置方法。
2.1 按索引取值(正向和反向)¶
- 只能进行取值,不能进行修改。
- 正向取值:直接从0开始取值。
- 反向取值:从-1开始取值。
2.2 字符串的切片¶
是索引的扩展,从一个大的字符串中拷贝出一个子字符串。
2.3 字符串的长度len¶
2.4 字符串成员运算in
和 not in
¶
判断一个子字符串是否存在于一个字符串中。
2.5 移除 strip、lstrip、rstrip
¶
-
三个区别
2.6 切分 split
和 rsplit
¶
把一个字符串按照某种分隔符进行切分,得到一个列表。
-
split 和 rsplit 的区别
2.7 upper、lower ----- 大小写转换¶
2.8 startswitch、endswitch
¶
- 返回结果的形式为True,而不是字符串。
2.9 join
---- 拼接
操作¶
把字符串或者列表进行拼接。对于 +
号也可以进行拼接,但是 +
号的效率极低
。
2.2 替换 replace
¶
替换,如果不指定次数,则默认全部替换。
2.11 判断是否是数字:isdigit
¶
判断字符串中是否有纯数字组成
- 返回的是True或者False。
2.12 查找(索引):find、rfind、index、rindex
¶
2.13 count
---- 统计个数¶
主要是统计某个字符或者字符串出现的次数。
2.14 显示位置:center、ljust、rjust、zfill
¶
-
center
--- 居中显示,如果不够,则使用特定字符串来填充 -
ljust
---- 左对齐 rjust
---- 右对齐zfill
---- 默认右对齐,不够的则使用0来填充
2.15 指定宽度:expandtabs
¶
指定制表符的宽度
2.16 capitalize、swapcase、title¶
-
capitalize
---- 表示首字母大写,不传任何参数 -
swapcase
----- 表示大小写反转,大写变成小写,小写变成大写。不传任何参数 -
title
---- 每个单词的首字母大写,不传任何参数
2.17 数字识别:isnumberic
¶
- 可识别数字、纯中文数字和罗马数字
3. 列表类型¶
列表:按照位置来存储多个值。
定义:list = []
在 []
内可存储各种类型,数字、字符、字符串
等。
-
按索引取值(正向存取+反向存取):既可以取也可以改。
-
切片(顾头不顾尾,步长)。
- 与字符串的切片类似
-
长度len
- 直接使用len()即可
-
成员运算in 和 not in
-
追加append()
-
指定位插入值
-
extend方法
-
删除
-
需要掌握的操作
l.count()
------- 统计元素的个数l.index()
------- 查找索引到元素的第一个值所在的位置。如果找不到就直接抛出异常l.clear()
------- 清除整个列表中的元素,不进行传值。l.reverse()
------- 直接反转列表,不是排序-
l.sort()
------- 默认是升序(从小到大,此时reverse=False),如果要设置为降序,则修改reverse=True即可。- 对于字符串的排序,则是根据ASCII码表的先后顺序区别字符的大小。
4. 元组(tuple)类型¶
-
元组是不可变的列表类型。
- 直接按照索引/位置来存放多个值,只能用于读,而不能修改。
-
定义
- 用
()
来定义,()
内用逗号分隔开多个任意类型的元素。
- 用
-
按索引取值(正向取和反向取)
-
常见的内置方法:
index
count
5. 字典(dict)类型¶
{}
内使用逗号分隔
开多个key:value
。- value可以是任意类型,但key必须是不可变的类型,且key值不能重复,否则只保留一个。
5.1 定义方式¶
-
定义空字典的方式
-
快速初始化字典的方式
5.2 内置方法¶
-
按key存取值:可存可取
-
长度len
- 统计key的个数,如果出现重复的key,则统计最后重名的key值
-
成员运算
in
和not in
- 只能根据key来进行判断,不能使用value来进行判断成员。
-
删除
-
键keys()、值values()、键值对items()
如果使用for循环的方式
-
需要掌握的内置方法
dict.clear()
:字典清空dict.update()
:如果不存在则新增,如果存在,但是key修改,则对应修改value值dict.get()
:如果key不存在,则直接显示None,如果存在,则正常打印信息。dict.setdefault()
:如果key存在,则不进行添加,如果key不存在,则进行添加。两种情况都返回字典中key对应的值
6. 集合类型¶
6.1 掌握点¶
-
关系运算
-
去重(有局限性)
-
总结与分类
- 有序 or 无序(有序又称为序列类型)
- 原子类型(存一个值)
- 存多个值称为容器类型
6.2 作用¶
-
主要进行关系运算
-
去重
- 仅仅针对不可变类型去重。
- 无法保证原来的顺序。
6.3 定义¶
在 {}
内用逗号分隔
开多个元素,多个元素满足以下条件:
- 集合内元素必须为不可变类型
- 集合内元素无序
- 集合内元素没有重复
6.4 类型转换¶
6.5 内置方法¶
7. 几个数据类型的分类总结¶
-
按存值个数区分
- 只能存一个值:可称为标量/原子类型:数字、字符串
- 可以存放多个值:可称为容器类型。列表、元组、字典
-
按照访问方式来区分
- 直接访问:只能通过变量名访问整个值:数字
- 顺序访问:可以使用索引来访问指定的值,索引代表顺序,又称为序列类型。字符串、列表、元组
- Key访问:可以使用Key访问指定的值,又称为映射类型。字典
-
按可变/不可变区分
- 可变类型:列表、字典
- 不可变类型:数字、字符串、元组
8. 参考资料¶
- Python官方文档
- W3CSchool Python教程
- 路飞学城Python开发视频课:B站