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

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

作者:随心…………

物联沃分享整理
物联沃-IOTWORD物联网 » python数据容器(下)

发表回复