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
字符串的比较是从头到尾,一位位进行比较,其中一位大,后面的就无需比较了
作者:随心…………