python数据容器(下)
5.数据容器:str(字符串)
字符串的下标索引
和其他容器如:列表、元组一样,字符串也可以通过下标进行访问
#从前往后,下标从0开始
#从后往前,下标从-1开始

同元组一样,字符串是一个:无法修改的数据容器,如果必须要做,只能得到一个新的字符串

字符串的常用操作



注意:不是修改字符串本身而是得到了一个新的字符串哦





统计

总结


字符串的遍历和之前的元组,列表的方法一样

字符串的特点
作为数据容器,字符串有如下特点:
·只可以存储字符串
·长度任意(取决于内存大小)
·支持下标索引
·允许重复字符串存在
·不可以修改(增加或删除元素等)
·支持for循环
小练习


my_str = "itheima itcast boxuegu"
count = my_str.count("it")
print(f"字符串{my_str}中有:{count}个it字符")
new_my_str = my_str.replace(" ","|")
print(f"字符串{my_str},被替换空格后,结果:{new_my_str}")
my_str2 = my_str.split(" ")
print(f"字符串{my_str},按照|分隔后,得到:{my_str2}")
6.数据容器(序列)的切片


切片:如[1,2,3,4,5]中取一个子序列[2,3]
注意:此操作不会影响序列本身,而是会得到一个新的序列
如果不写步长,步长默认为1

小练习

可以同时使用两次切片哦

my_str = "万过薪月,员序程马黑来,nohtyp学"
#倒序字符串,切片取出
result1 = my_str[::-1][9:14]
print(f"方式1结果:{result1}")
result2 = my_str[9:4:-1]
print(f"方式2结果:{result2}")
#切片取出,然后倒序
result3 = my_str[5:10][::-1]
print(f"方式3结果:{result3}")
#split分隔","replace替换“来”为空,倒序字符串
result4 = my_str.split(",")[1].replace("来","")[::-1]
print(f"方式4结果:{result4}")
7.数据容器:set(集合)

而集合,最主要的特点是就是不支持重复,并且内容无序


集合的常用操作
·集合是无序的,所以集合不支持:下标索引访问
·但是集合和列表一样,是允许修改的





取出只能是随机取出一个元素

清空 clear







#注意集合是去重的

#统计的时候也是要去重的
#集合的遍历,集合不支持下标索引,不能用while循环,可以使用for循环

总结

集合的特点:
·可以容纳多个数据
·可以容纳不同类型的数据(混装)
·数据是无序存储的(不支持下标索引)
·不允许重复数据存在
·可以修改(增加或删除元素)
·支持for循环
小练习:


my_list = ["黑马程序员","传智播客","黑马程序员","传智播客","itheima","itcast","itheima","itcast","best"]
set1 = set()
for element in my_list:
set1.add(element)
print(f"存入集合后结果是:{set1}")
8.数据容器:dict(字典、映射)
字典的定义

通过key找的对应的value,可以提供基于key查找value的场景实现,就像查字典一样


list列表,tuple元组,str字符串,set集合,dict字典
字典中的key也是不允许重复

而且当有两个重复元素时,第二个会将第一个覆盖




字典的常用操作


key存在就是更新,key不存在就是新增





总结

字典的特点:
·可以容纳多个数据
·可以容纳不同类型的数据
·每一份数据是keyvalue键值对
·可以通过key获取到value,key不可重复(重复会覆盖)
·不支持下标索引
·可以修改(增加或删除更新元素等)
·支持for循环,不支持while循环
小练习

my_dict = {
"王力宏":{"部门":"科技部","工资":3000,"级别":1},
"周杰伦":{"部门":"市场部","工资":5000,"级别":2},
"林俊杰":{"部门":"市场部","工资":7000,"级别":3},
"张学友":{"部门":"科技部","工资":4000,"级别":1},
"刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"升值加薪前的结果是:{my_dict}")
for name in my_dict:
if my_dict[name]["级别"] == 1:
my_dict[name]["级别"] = 2
my_dict[name]["工资"] += 1000
print(f"升值加薪后的结果是:{my_dict}")
9.数据容器对比总结



10.数据容器的通用操作





·字符串转换时,是把所有的字符串一个一个提出来
·字典转换时,只把十一点key一个一个提出来
·因为字典要求的是键位对,所以转换成字典会报错
剩下的转换以此类推

sorted是从小到大排序,结果默认为列表
·正向排序sorted(容器)
·反向排序sorted(容器,[reverse=True)


11.字符串大小比较

小写的ASCII值一般比大写的大32

字符串的比较是从头到尾,一位位进行比较,其中一位大,后面的就无需比较了

作者:随心…………