1.1 字符串常用操作
1 name = "zhou qiong jie" 2 3 print(name.capitalize()) #将首字母大写 4 Zhou qiong jie 5 print(name.count("o")) #统计有多少指定字符 6 2 7 print(name.center(50,"-")) #打印50字符,不够的话用-,在两头补全 8 9 print(name.endswith("ie")) #判断是否以它结尾10 True11 print(name.find("qiong")) #显示字符位置12 513 print(name[name.find("qiong"):]) #对字符串进行切片print(name[5:]) 14 qiong jie
1 name = "my name is {name} and I am {year} old! " 2 3 print(name.format(name='zhouqiongjie',year=23)) 4 my name is zhouqiongjie and I am 23 old! 5 print(name.format_map({ 'name':'zhouqiongjie','year':23})) #一一映射对应 6 7 print('ab123'.isalnum()) #判断是否是阿拉伯字符 8 True 9 print('abD'.isalpha()) #判断是否为纯英文字符10 True11 print('ab123'.isdecimal()) #判断是否为十进制12 False13 print('ab123'.isdigit()) #判断是否为整数14 False15 print('ab123'.isidentifier()) #判断是否是合法的标识符(合法的变量)16 True17 print('ab123'.islower()) #判断是否都是小写18 True19 print('ab123'.isspace())#判断是否是空格20 False21 print('ab123'.istitle())#每个字符串首字母大写22 False23 print('ab123'.isprintable()) #判断是否可以打印 如:tty file不能打印24 True25 print('ab123'.isupper())#判断是否为大写26 False27 print('+'.join(['1','2','3']))#将列表中的值,进行拼接28 1+2+329 print(name.ljust(50,'*'))#打印50个字符,不够就用指定字符在后面补全30 31 print(name.rjust(50,'*'))#打印50个字符,不够就用指定字符在前面补全32 33 print(name.lower()) #把大写变小写34 35 print(name.upper()) #把小写变大写36 37 print(name.strip()) #去两边空格或回车38 39 print(name.lstrip()) #去左边的空格或回车40 41 print(name.rstrip()) #去右边的空格或回车
1 p = str.maketrans("abcdef",'123456') #形成对应关系,类似加密解密,密码本2 3 print("zhouqiongjie".translate(p)) 4 zhouqiongji5
1 print('zhouqiongjie'.replace('o','O',1)) #将指定字符的第一个替换 2 zhOuqiongjie 3 print('zhouqiongjie'.rfind('o'))#找到指定字符的下标,显示最右边 4 6 5 print('zhou qiong jie'.split())#把字符串按照空格切分成列表 6 ['zhou','qiong','jie'] 7 print('zhou qiong jie'.split('o'))#把字符串按照o切分成列表 8 ['zh','u qi','ng jie'] 9 print('zhou\nqiongjie'.splitlines())#把字符串按照换行符切分成列表10 ['zhou','qiongjie']11 print('Zhou qiong jie'.swapcase())#大小写互转 zHOU QIONG JIE12 print('zhou qiong jie'.startswith('zhou')) #判断是否以‘zhou’开头,是返回True,否返回Fales13 print('zhou qiong jie'.zfill(50))#打印50个字符,不够用0补齐,从左边补齐
1.2 字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
字典的特性:
- dict是无序的
- key必须是唯一的,so 天生去重
字典的增删改查
#字典
1 info = { 2 3 'stu001':"qiongjie", 4 5 'stu002':"zhouqiongjie", 6 7 'stu003':"zhangdan", 8 9 'stu004':"dandan"10 11 }12 13 info['stu001']="琼杰" #修改14 15 info['stu005']='张丹' #增加16 17 info.pop('stu003') #删除18 19 del info['stu004'] #删除20 21 print(info.get('stu004')) #查询指定值,存在就显示,不存在就显示none22 23 print('stu001' in info) #判断是否存在这个key,存在就显示true,不存在就显示false24 25 print(info)#查询26 27 print(info.values()) #只显示值,生成一个列表28 29 print(info.keys()) #只显示key,生成一个列表30 31 setdefault()表示去取字典中的key,如果取不到,则设置新值,相反如果取到,则返回原有默认值
1 >>> stu_info = { "zhangsan":23,"lisi":18,"zhou":18} 2 #设置不存在的key 3 >>> stu_info.setdefault("wanger",25) 4 25 5 >>> stu_info 6 #输出结果 7 { 'wanger': 25, 'zhangsan': 23, 'zhou': 18, 'lisi': 18} 8 #设置存在的key 9 >>> stu_info.setdefault("zhou",23)10 1811 >>> stu_info12 #输出结果13 { 'wanger': 25, 'zhangsan': 23, 'zhou': 18, 'lisi': 18}
###这是个坑###
1 c =dict.fromkeys([1,2,3]) #初始化一个字典 2 3 print(c) 4 5 6 7 d =dict.fromkeys([1,2,3],[1,{ "name":"alex"},333]) #三个key,共享一个值 8 9 d[1][1]['name'] = 'haha' #当修改其中的一个值时,其实三个都发生了变化10 11 print(d)
字典合并
update()是把两个字典合并成一个新的字典,中间有交叉的key,更新替换成新值,没有交叉就直接创建
1 info = { 2 3 'stu001':"qiongjie", 4 5 'stu002':"zhouqiongjie", 6 7 'stu003':"zhangdan", 8 9 'stu004':"dandan"10 11 }12 13 14 15 info2 = {16 17 "stu001":"alex",18 19 1:3,20 21 2:522 23 }24 25 info.update(info2) #将两个字典合并26 27 print(info)28 29 print(info.items()) #将字典转换成一个大的列表 clear() #清空字典
字典的循环:
1 info = { 2 3 'stu001':"qiongjie", 4 5 'stu002':"zhouqiongjie", 6 7 'stu003':"zhangdan", 8 9 'stu004':"dandan"10 11 }12 13 #字典的循环,两种方式14 方法1:15 for i in info: #建议使用,更加高效16 17 print(i,info[i])18 19 print("-----------------")20 方法2:21 for k,v in info.items(): #需要将字典转换成列表,花费时间较长22 23 print(k,v)
对比小结:
①方法1的效率比方法2的效率高很多
②方法1是直接通过key取value
③方法2是先把字典转换成一个列表,再去取值
④当数据量比较大的时候,用第二种方法时,字典转换成列表的这个过程需要花大量的时间老转换,当然数据量不大,没有关系,效率差不多
多级字典嵌套及操作:
Key最好不要使用中文,可能因为编码,取不出来值
1 scenery_catalog = { 2 3 "北京":{ 4 5 "beijing":["故宫博物院","颐和园","鸟巢"] 6 7 }, 8 9 "上海":{10 11 "shanghai":["城隍庙","豫园","外滩"]12 13 },14 15 "湖北":{16 17 "wuhan":["东湖绿道","黄鹤楼","光谷"]18 19 }20 21 }22 23 24 25 scenery_catalog["湖北"]["wuhan"][0] = "汉口江滩" #修改26 27 print(scenery_catalog)