3 数据类型
约 3485 字大约 12 分钟
2025-04-05
基础类型
字符串str
str()强制把其他类型转换为字符串类型(所有基本数据类型都可以转换为字符串类型)
把两个字符串合并到一起
把目标字符串打印n次 x*3把x打印3次
in 判断返回是否在其中 'a'in b
切片用法[a🅱️c] a表示开始位置(a缺失表示从字符串的开头开始取) b表示结尾位置(b确实表示去至字符串结尾) c表示步长(每c个顺序的第一个,负数为逆顺序取)
排序: 从0开始,逆顺序从-1开始
函数
- len(x) : 返回字符串x的长度
- str(x) : 将任意类型的x转为字符串形式
- chr(u) : u为unicode编码返回其相应字符串
- ord(x) : x为字符,返回其对应的unicode编码
字符串处理方法
- str.lower() : 转换str中的大写字母为小写
- str.upper() : 转换str中的小写字母为大写
- str.split('') : 把引号引用的内容替换为分隔符切片
- str.find(value,start,end) : 检测value是否包含在str中
- str.index(value,start,end) : 检测value是否包含在str中,start end 表示开始与结尾如果在返回索引值,不会返回-1(index不会报异常信号)
- str.count(value,start,end) : 返回value在str中出现的次数
- str.replace(old,new) : 把str中的old替换成new
- str.join(seq) : 以str作为分隔符,将seq中的所有元素(的字符串表示)合并为一个新的字符串
- str.len() : 返回字符串的长度
- str.center(length,character) : 返回居中的字符串,并使用character填充至长度length的新字符
- str.strip()
- str.lstrip()
- str.rstrip() : 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
- eval() : 用于执行一个字符串表达式并返回表达式的值
- ord(字符) : 将该字符转化为ascii编码中对应的十进制编码
- chr(编码) : 将输入的ascii编码转化为对应的字符(可以是十进制也可以是十六进制)
- acsii(元素) : 若元素是acsii编码的字符则返回它本身,否则以\形式的转义字符表示
- repr(对象) : 将字符转化为供解释器阅读的形式,转义的内容转化为转义字符。
字符串判定方法
- str.startswith(obj) : 判断字符串是否以obj开头,是则返回true,否则返回false
- str.endswith(obj) : 判断字符串是否以obj结尾,是则返回true,否则返回false
- str.isalpha() : 判断文本中的所有字符是否都是字母,是则返回true,否则返回false(中文汉字也属于alphabetic)
- str.isalnum() : 判断字符串是否由字母和数字组成
- str.isnumeric()
- str.isdigit()
- str.isdecimal() : 判定数字字符
整数类型int
int() 把其他类型转换为整数类型。(只有数字类型之间才能相互转换:整型,浮点型。字符串中的元素必须为纯数字,可以为负数)
进制表现类型
- 二进制 以0b或0B开头
bin() 将整数转化为二进制表现形式,返回字符串
- 八进制
以0o或0O开头
oct() 将整数转化为八进制表现形式,返回字符串
- 十六进制
以0x或0X开头
hex() 将整数转化为十六进制表现形式,返回字符串
浮点类型float
float() 把其他类型转换为浮点型。(只有数字类型之间才能相互转换:整型,浮点型。字符串中的元素必须为数字类型,可以为负数)
float浮点数(小数)
- round(x,d) 对x四舍五入,d是小数截取位数 若只有一个x变量无d则取整数
复数类型complex
布尔(bool)类型
对于数值来说0相当于false,非0相当于true
对于容器类型来说空为false,非空为true
容器类型:字符串,列表,元组,字典,集合 非容器类型:整型,布尔类型,浮点类型
bytes() bytearry() 数学运算
abs(数字) 返回数字的绝对值
round(数字,位数) 对数字四舍五入并截取指定位数,默认整数
divmode(数字1,数字2) 以元组形式返回两个数的商和余数 和(a//b,a%b)效果一样
sum(容器) 求和
pow(数字a,数字b) 求a的b次幂
pow(a,b,c) 如果有第三个参数,则求完次幂后对第三个数取余 相当于pow(a,b)%c
序列类型
列表list
list()把容器类型强制转换为列表。容器类型才转换。字符串转列表时会把字符串中的每一个字符当作列表元素。元组转列表时会把每个元素都当作列表元素。字典转列表时只会保留字典中的键。集合转列表时,结果是无序的,以为集合本身就是无序的
列表是一个有序且可更改的集合,用方括号编写,用逗号将字符隔开。可嵌套
在访问列表时索引的值超过列表的位数时会发生错误(越界)。但切片可以超出范围
用[]生成,用,分隔
列表元素的增加
- +拼接
- a.append(x)将元素x添加至列表尾部,没有返回值
- a.extend(x)将所迭代对象中所有元素添加至列表尾部,没有返回值(x是列表)
- a.insert(n,x)在指定位置n处添加元素x,没有返回值
列表元素的删除
- a.remove(x) : 在列表中删除首次出现的指定元素,没有返回值
- a.pop() : 删除并返回列表对象指定位置的元素,默认为最后一个元素,有返回值
- a.clear() : 删除列表中对应的所有元素,但保留列表对象,没有返回值
- del a[n] : 删除函数,删除列表(a)中指定位置的元素(n)(无返回值)
元素操作
- a.count(n) : 计算在列表a中出现的次数
- len(a) : 统计a中有多少元素
- a.index(n) : 查找a中n第一次出现的位置
- max(a) : 返回列表中最大值的元素
- min(a) : 返回列表中最小值的元素
- a.sort() : 按照权值大小对a中元素进行排序,reverse搭配使用。a.sort(reverse=True/False)根据True或False决定正倒序
- a.reverse() : 对列表a的元素进行反向排序,无返回值
- 字典.copy() : 创建副本,修改原对象不会影响副本
元组tuple
tuple()其他类型数据转元组类型与转列表规则一样 元组和列表一样但唯一的区别是元组一旦定义完成,就不可修改
创建元组:
变量名=tuple(容器类型)
变量名=(元素,元素,……)操作方法(因为元组不可修改的特性,所以其操作方法非常少)
- a.index(n) : 查找某个数据,如果数据存在返回对应下标,否则报错。
- a.count('n') : 统计数据在当前元组出现的次数
- len(a) : 统计元组内的元素个数
- a.remove(n) : 从前往后,删除次元素第一个匹配项
集合set
set()其他类型转集合类型。容器类型才能转换。任何类型转集合类型都是无序的
集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重,集合中默认去重(数学中的集合互异性,无序性,确定性)
集合中的元素只能是不可变的数据类型
创建集合
变量名=set(元素) 字符串,列表,元组,字典
变量名={元素,元素,……} 元组,字符串,数字添加元素
- 集合.add(元素)添加元素到集合中 因为集合无序的特点,所以添加元素有时会添加在第一位,有时候会添加到最后一位
- 集合1.update(容器类型)将集合合并 对象必须是可迭代类型
集合的比较
并集
|
.union()交集
&
.intersection()差集
-
.difference()对称差集
^
集合1.symmetric_difference(集合2)字典.copy()创建副本,修改原对象不会影响副本
字典dict
dict()其他类型转字典类型。列表和元组才能转换。字符串不能转换,因为字符串不能生成二级容器。集合不能转字典类型。列表转字典类型,列表和元组必需为等长的二级容器,子容器中的元素个数必须是2
字典是一种映射类型,它的元素 是键值对,字典的键必须为不可变类型(元组,字符串,数字),且不能重复(重复会覆盖)
创建字典
变量名=dict()
变量名={键:值,键:值,……}可换行
变量名={}空字典操作
增加
字典[键]=值删除
del 字典[已有键]修改
字典[已有键]=新值查找(获取)
字典[已有键]有返回值,获取到对应值, 若没有该键则发生错误
字典.get(键)获取对应值没有该键也不会发生错误
- 字典.keys()以列表形式返回字典中的所有键(不能返回嵌套中字典的键)
- 字典.values()以列表形式返回字典中的所有值(作为值的嵌套的字典返回该字典作为列表中的元素)
- 字典.items()以列表形式返回字典中所有键值对。对应的键值以元组形式作为列表中的元素
- 字典.clear()将字典清空
- 字典.copy()创建副本,修改原对象不会影响副本
- 字典.fromkeys(序列,元素)创建新字典,会覆盖原来的字典。序列(列表,集合,元组),元素(可以是任何类型)
- 字典.pop(键)从字典中移除指定键并返回该键对应的值
- 字典.popitem(删除最后一项并以元组形式返回该项对应的键和值)
- 字典.setdefault(键,值)用于设置键的默认值,若字典中该键已存在则忽略设置,若不存在,则添加该键和值
- 字典1.update(字典2)将字典2的值更新到字典1,若字典2的键在字典1中已存在则修改该键对应的值,若不存在,则添加
可以修改多个元素,可以添加元素 遍历时可用两个变量分别接受键和值
通用功能
统计
- len(容器) : 统计元素个数
- max(容器) : 统计容器中最大的元素
- min(容器) : 统计容器中最小的元素
- sum(容器) : 求和
排序
- 序列.reverse() : 对其中的元素进行反向排序(无返回值)
- list(reversed(a)) : 有返回值,前面有加list变换类型
- sorted(序列) : 对所有可迭代的对象进行排序 与sort的区别:sort是应用在list上的方法,sorted可以对所有可迭代的对象进行操作,list的sort方法返回的是对已经存在的列表进行操作,无返回值。内建函数sorted方法返回的是一个新的list,而不是在原来的基础上操作 reverse搭配使用。sorted(序列,reverse=True/False)根据True或False决定正倒序
删除
- 容器.remove(元素) : 删除指定元素,若无,则报错
- 容器.discard(元素) : 删除指定元素,不会报错
- 容器.pop(下标) : 删除下标索引处的元素,集合不能用,因为集合是无序的
- 容器.clear() : 清除容器中的所有元素
- del 容器[下标] : 清除容器中指定下标处的元素,集合无序,不能用
排序
- 容器.sorted() : 升序排序
- 容器.reverse() : 逆序 集合无序,不可用
判断
- 元素 in 容器 : 判断元素是否存在于容器中,是则返回true,不存在返回false
切片
- 容器[start,stop,step]
- 容器[slice(stat,stop,step)]
- 容器[slice(a)]=容器[0,a]
iterable() enumerate(对象,start=数字) : 获取容器的枚举对象并以元组的形式返回出来和其下标. 可使用start指定从哪个下标开始枚举,若无则默认0
all(对象) : 判断容器类型中有无空元素或0,若有返回False,否则返回True
any() : 有一个是True就是True
filter(function,iterable) : 过滤序列中不符合条件的元素
function判断函数
iterable可迭代对象
操作
解包
可以把一个字符串,列表,元组,集合,字典拆分成独立的多个元素然后赋值给变量
如果左侧变量的数量少于或多于列表中元素的数量则会返回错误。
在变量前使用* 可以将列表中剩余的变量打包成一个新的列表
加* 变量的结果一定是列表
在解包操作后面加上sep=‘符号’ 能用指定符号间隔开元素
判断是否存在
元素 in/not in 序列 判断某个对象是否在序列(字符串,列表,字典,元组)中,返回布尔类型.in和not in相反
判断是否相同
元素 is/is not 元素 判断对象是否相同,返回布尔类型。数字,字符串,元组是不可变类型,表面一样则完全一样。列表,集合,字典是可变类型,表面一样实际不一样。
检测数据类型
type(对象)
isinstance(对象,类型)判断一个对象是否是一个已知的类型,返回布尔类型。若要验证多个类型则isinstance(对象,(类型,类型,……))
zip(1,2)将可迭代的两个对象中从开始对应的元素打包成一个元组,返回由这些元组组成的列表,若对象的长度不同,则省略多余的元素
贡献者
版权所有
版权归属:wynnsimon
