容器知识点梳理(自整理)
-
需要指出的是,抓住其特点是掌握各类容器的关键.
-
1.序列式容器中关键点在于索引,大多数操作是通过索引进行增删改查操作的,其次还有直接通过值value查找.while遍历也是通过索引进行操作的.(注:与for循环不同的是,for循环通过指针进行寻址进行遍历操作.)
-
2.字典属于非序列式容器,其关键点在于其key键及其连接起来的键值对.通过查找key键可以进行相关增删改查操作,包括进行遍历操作.
字符串
-
1.字符串的定义及其初始化:
-
单引号对/双引号对/三对单引号对 引起来的部分:
str = “hello Python” -
2.字符串属于序列式容器,因此支持索引和切片操作.
注:序列式容器有索引,包括字符串/列表/元组.而字典和集合不属于序列式容器,因此不支持有关索引一系列操作. -
3.字符串的相关操作
1.字符串的替换:replace 方法:会将所有选中value进行替换
格式: str.replace("","") / str.replace("","",count) count代表次数,即指此参数要求替换多少次.
注意:字符串本身不能被修改,这里的replace操作原理是先将字符串进行复制得到副本,再对副本进行修改操作.源字符串并不会发生任何改变. -
2.字符串的删除:
注:字符串的删除操作看作是字符串的替换,即:str.replace(“要替换的字符”,"") -
3.字符串的查找:
find 方法: str.find(’’,start,end) 直接通过value进行查找,也可指定范围,左闭右开.该方法为目的字符串第一次出现的位置.(列表中没有find方法)
str[索引] 直接可以取出单个字符,这与列表相同
与find方法非常类似的是index方法,格式相同,不过目的字符不存在则会报错,所以一般不使用index方法进行查找操作.
rfind rindex方法类似 ,区别是开始位置在右侧. -
4.字符串的其他方法:
1.切片(只要序列式容器均可进行切片操作):
格式: str[start?步长]: (具体见位置:E:\每日作业\基础班-day04\02_代码\第四天\python_02_切片.py)
2. string.isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal() 如果 string 只包含数字则返回 True
string.islower() 如果 string 中包含至少一个区分小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper() 如果 string 中包含至少一个区分大写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True
string.startswith(str) 检查字符串是否是以 str 开头,是则返回 True
string.endswith(str) 检查字符串是否是以 str 结束,是则返回 True3.字符串分割
string.split(str="",num) 返回列表,以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines() 返回列表,按照⾏(’\r’, ‘\n’, ‘\r\n’)分隔
string1 + string2 拼接两个字符串
string.strip() 返回新字符串,截掉 string 左右两边的空白字符
注:此处要想截掉中间部分,可用replace方法空白替换.
4.字符串拼接
“sep”.join(seq)
参数说明:
sep:分隔符.可以为空
2.列表:
- 1.列表的定义:
不同于字符串,列表可以存储多种数据类型,并且可以自动识别,支持索引的一切相关操作(包括切片),并且可以通过索引直接进行修改元素.有关列表的定义格式为:
list = [] /list = [10,“hello”,3.14,True] - 2.列表的相关操作
列表可以通过索引进行查找/修改元素等操作.可以通过切片访问元素.
对列表的遍历可直接通过访问value进行遍历.- 1.增加元素:
append方法: list.append(value) 使用append向列表添加的元素位于列表末尾
insert方法: list.insert(索引,value) 向指定位置插入元素
extend方法: list.extend(List) 将另外一个列表中的所有元素追加到当前列表的尾部 - 2.删除元素:
remove方法: list.remove(value) value删除.只删除第一次出现的元素.
pop方法: list.pop(索引) 索引删除,若不指定则删除列表最后一个元素 ,返回被删除元素
del 方法: del list[索引] 删除指定索引的数据
list.clear() 清空列表 - 3.修改元素:
list[索引] = new element - 4.查找元素:
list[索引] 根据索引取值
list.index(value) 值查询,跟字符串中find方法类似,但列表没有find方法,查询不到目的元素,index会报错.
list.count(value) 统计value在列表中出现的次数
in(存在) 一般在if判断中使用,如果存在那么条件为True,否则为False
not in(不存在) 一般在if判断中使用,如果不存在那么条件为True,否则为False - 5.列表的排序:
sort方法: list.sort() 升序
list.sort(reverse = True) 降序
list.reverse() 逆序
- 1.增加元素:
3.元组:
- 1.元组的定义:
Python的元组与列表类似, 不同之处在于元组的元素不能修改. 元组使用小括号来定义, 列表使用方括号来定义.
元组不支持修改, 所以元组只支持遍历、查找操作.
my_tuple = (10, 20, 30)
my_tuple = ((10, 20, 30), (100, 200, 300))
注意:在列表定义中,如果只存在一个元素,则后必须加 , 加以分辨. - 2.元组的相关操作:
- 1.查找:
tuple[索引]
tuple.index(value) 跟列表用法相同,返回第一次出现的位置
tuple.count(value) 跟列表用法相同,统计出现的次数.
- 1.查找:
4.字典:
-
1.字典的定义:
字典中的每一个元素都是一个 “键值对”, 键值之间用冒号(:)分割, 每个字典元素(键值对)之间用逗号(,)分割, 整个字典包括在花括号 {} 中
info = {} / info = {key1:value1,key2:value2…} -
2.字典的相关操作:
-
1.增加元素:
info[key] = new element 键不存在,会添加键值对;键存在,会修改键值对的值. -
2.删除元素:
del info[key] 如果后面不跟key键,则删除该字典(del info)
del.clear() 清空字典中的键值对
info.pop(key) 删除指定键值对,返回被删除的值 (此处思考,为什么没有remove方法,字典中的相关操作都是根据key键来实现的,不能对value直接操作) -
3.查找元素:
info[key] 从字典中取值,不存在会报错
info.get(key) 从字典中取值,不存在不会报错,返回none
info.keys() 获取key键,返回列表
info.values() 获取value,返回列表
info.items() 获取键值对,返回列表 -
4.字典的遍历:
需要注意的是,字典的遍历是遍历全部键值对,不是单纯遍历值或者遍历key键,在此提供三种方法:
1.抓住key键,用keys方法获取键值,遍历键值后通过键值格式化输出全部键值对
2.先遍历键值对,用items方法便利完成后,格式化输出全部键值对.
3.定义变量 ,直接从字典中取值.
详情见:E:\exercise\day_05\day_05_字典的遍历
5.集合:
- 关于集合问题,可以看成是一个不存在重复元素的列表,其元素操作不尽相同,其中 添加元素用的是add方法: set.add(element)
update方法可一次性添加多个元素.
创建一个空的set集合 my_set = set() //小括号
创建一个包含元素的集合 my_set = {10, 20, 30, 40} //大括号
用一个容器来创建集合(注意:set会剔除重复元素) my_set = set([1, 2, 3, 4, 5, 5])
创建一个唯一元素的字符集合 my_set = set(“hello world!”)