本文将系统总结python五:列表类型类型:字典,集合,元组,字符串,以便整体复习与掌握。
名称 | 属性 | 创建方式 | 与其他数据类型的转换 | 相关操作以及函数与方法名 |
列表 | 可变对象,有序序列,使用中括号[]来定义 | 使用中括号直接创建,各元素间用逗号,隔开[元素1, 元素2, ..., 元素n]; 使用list()函数; 列表生成式:[需要创建的元素的表达式 for...in...] | 除转化为字典需要使用zip()函数外,其他类型数据之间的相互转化可直接使用相应数据类型的函数。转化为字符串:首先将列表中的元素转换为字符类型的数据,使用"".join(列表名); 列表表达式[str(i) for i in 字符串名]。 转化为字典:zip()函数将两个列表打包, 使用dict(打包后的对象); 嵌套列表,字列表为两个元素 | |
索引:正向0至元素个数-1; 倒向:-1至-元素个数 | ||||
切片:[开始结点索引号:终止结点索引号:步长] | ||||
index(元素, 查找起始点, 查找终点)方法, 确定某一个元素的索引值。其中查找起始终止点可忽略不写, 若列表中有多个需要查的元素,则返回第一个该元素的索引值。 | ||||
append()方法, 列表尾添加一个元素; extend()方法, 列表尾添加一个序列; insert()方法, 指定位置添加一个元素; remove()方法, 删除指定的一个元素; pop()方法, 依靠索引删除一个元素,默认删除最后一个元素; clear()方法, 清空列表中的元素; del函数, 直接删除列表对象 | ||||
列表排序: sort(key= , reverse= )方法, 对列表元素按一定规则排序,排序后原列表发生变化 sorted(列表名, key= ,reverse= )函数,对某一列表按一定规则排序后产生新的列表对象 | ||||
列表反转: 1. reverse()方法。list_name.reverse()列表元素的直接反转,不开辟新的内存空间;2.reversed函数。list_name2 = reversed(list_name)实现反转之后开辟了新的内存空间,原来的列表不变。3. 借用列表切片实现反转。list_name3=list_name[::-1]。此方法同样开辟了新的内存空间,原来的列表不变 | ||||
字典 | 可变对象, 无序序列, 不存在索引, 根据hash函数的函数值大小排序, 跟元素放入的前后顺序无关, 以键值对的方式存储数据, 键不可重复, 值可重复, 使用花括号{}来定义 | 直接使用花括号{}来创建{键名称1:值,键名称2: 值,...,键名称n:值};s使用dict()函数,dict(键名称1=值, 键名称2=值,...,键名称n=值);字典生成式: {键:值 for 键,值 in zip(键所在的序列, 值所在的序列)} | 字典转化为列表:使用list()函数, list(字典名.keys()),list(字典名.values())。 转化为字符串:str()函数强转; json.dumps 转换。除转化为字典需要使用zip()函数外,其他类型数据之间的相互转化可直接使用相应数据类型的函数。 | |
获取字典中的某个键 for 键 in 字典名: print(键) key()方法, 获取字典中所有的键 | ||||
获取字典中的值:字典名[键]; 字典名.get(键) values()方法, 获取字典中所有的值 | ||||
判断键存在与否:in 与 not in | ||||
items()方法, 获取字典中所有的键值对 | ||||
del 字典名[键], 删除字典中的的一个键值对 del 字典名, 删除字典对象 clear()方法, 清空字典对象中的所有键值对 | ||||
字典对象的增加:直接赋值的方式,字典名[键]=值 | ||||
集合 | 可变对象,无序不可重复序列, 不存在索引, 同样根据hash函数的函数值确定元素的位置, 与元素加入前后顺序无关, 使用花括号来定义 | |||
创建:1. 直接使用花括号{}创建, 此方法不可用于创建空集合; 2. 使用set()函数创建; 3. 集合生成式:{表达式 for...in...} | 除转化为字典需要使用zip()函数外,其他类型数据之间的相互转化可直接使用相应数据类型的函数 | |||
判断元素存在与否:in 或 not in | ||||
add()方法, 在集合尾端添加一个元素 update()方法, 在集合的尾端添加一个序列 | ||||
remove()方法, 删除集合中存在的元素 discard()方法, 执行删除元素操作,该元素也可不在需要执行操作的集合中, 若元素不在,使用discard()方法后返回原集合 pop()方法, 任意删除集合中的一个元素 | ||||
集合1 == 集合2 或者 集合1 != 集合2 判断两集合是否相等 | ||||
issubset()方法, 集合1.issubset(集合2) 判断集合1是否为集合2的子集 issuperset()方法, 集合1.issuperset(集合2) 判断集合1是否为集合2的超集,类似于数学中真集的概念 intersection()方法 或 集合1&集合2 求两集合的交集 union()方法 或 集合1 | 集合2 求两集合的并集 difference()方法 或 集合1-集合2 求集合1中有但集合2中没有的元素 symmetric_difference()方法 或 集合1^集合2 求集合1中有集合2中没有以及集合2中有集合1中没有的元素的并集 | ||||
元组 | 有序不可变对象, 即不可使用索引赋值方式的改变元组元素, 使用小括号()定义 | 创建:1. 直接使用小括号()创建, 创建只有一个元素的元组时,元素后需加逗号; 创建含有多个元素的元组时,括号可省略,逗号不可省略2. 使用内置函数tuple()进行创建。 | 除转化为字典需要使用zip()函数外,其他类型数据之间的相互转化可直接使用相应数据类型的函数 | 查找与遍历:使用索引或for in 循环 |
字符串 | 有序不可变对象,使用引号(单引号,双引号,三引号)定义 | 使用引号进行创建; 使用str()函数 | ||
除转化为字典需要使用zip()函数外,其他类型数据之间的相互转化可直接使用相应数据类型的函数。转化为列表:list()函数; split()方法; eval()函数:只能转化字符串的元素为列表对象的情况,该元素需用用双引号包裹 如:s = "['a','b','c']", eval(s)得到['a','b','c']。 转化为字典:eval()函数, json模块的json.loads()方法,(loads()方法可识别字符串)转化字符串元素为字典的元素, 该字典元素的键需要用双引号包裹 s = "{'a':1,'b':2}" s1 = '{"a":1,"b":2}' print(eval(s)) print(eval(s1)) json.loads(s1) | ||||
字符串的驻留:相同的元素赋值给不同的对象,所有对象的id相同; 编译时进行驻留,运行时不驻留; 字符串长度为0或1自动驻留;[-5,256]之间数字驻留;符合标识符(大小写字母,数字,下划线)的字符串默认驻留, 使用sys模块的intern()方法强制驻留。 | ||||
字符串的解编码:encode(encoding='编码方式')方法 对字符串进行编码; decode(encoding='编码方式')方法 对编码后的二进制字节类型数据进行解码。 | ||||
字符串格式化:占位符% 字符串 % 值(值有多个的话,用元组整体表示); format()方法, 与花括号{}搭配。 | ||||
字符串的对齐:center(指定宽度, 指定填充符(可选))方法 居中对齐; ljust(指定宽度, 指定填充符(可选))左对齐; rjust(指定宽度, 指定填充符(可选))右对齐; zfill(指定宽度)右对齐,默认填充符为0。 | ||||
字符串的比较:使用比较运算符,返回布尔值 | ||||
ord()函数 获取某一字符的原始值; chr()函数 获取某一值所对应的字符; | ||||
索引与切片:类似于列表 查找:index()方法, find()方法, 按正向索引查找,即左起查找; rindex()方法, rfind()方法, 按逆向索引进行查找,即右起查找; | ||||
字符串的转化: lower()方法 将字符串所有字符小写 upper()方法 将字符串所有字符大写 swapcase()方法 将字符串所有字符大小写相互转化 capitalize()方法 将字符串的首字母大写,其他字符全部小写 title()方法, 将字符串中每个分隔开的子字符串首字母大写/td> | ||||
字符串的判断: isidentifier()方法 判断字符串是否为合法标识 isspace()方法 判断字符串是否全部由空白字符、回车、换行、水平制表符等组成 isalpha()方法 判断字符串是否全部由字母组成 isdecimal()方法 判断字符串是否全部由十进制的数字组成 isnumeric()方法 判断字符串是否由数字组成 isalnum()方法 判断字符串是否由字母和数字组成 | ||||
字符串的劈分替换与连接: split(sep= (可选), maxsplit= (可选))方法, 从字符串左侧起劈分,默认识别到空格即劈分, 返回一个列表对象 rsplit(sep= (可选), maxsplit= (可选))方法, 从字符串右侧起劈分,默认识别到空格即劈分, 返回一个列表对象。 replace(需被替换的子字符串, 替换为的字符串)方法 进行子字符串的替换 join()方法 '连接符'.join(被连接的序列) 加号‘+’ 实现两个字符串的链接 | ||||
字符串有关函数: eval(expression[, globals[, locals]])方法 执行一个字符串表达式 |