博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day02-字符串、字典
阅读量:7212 次
发布时间:2019-06-29

本文共 4481 字,大约阅读时间需要 14 分钟。

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)

 

 

 

转载于:https://www.cnblogs.com/Study-Blog/p/6478713.html

你可能感兴趣的文章
【nowcoder-2017校招真题】保留最大的数
查看>>
oracle创建表空间、用户
查看>>
Spring3.0包描述
查看>>
java8(2)函数式接口
查看>>
Java线程间通信-回调的实现方式
查看>>
strtol
查看>>
理解Fragment生命周期
查看>>
Maven生命周期
查看>>
微秒级别的网络延迟检测
查看>>
Crontab作业时间设置
查看>>
数据流图的画法
查看>>
win7下使用命令行关闭被某一端口占用的进程
查看>>
VS2012程序打包部署详解
查看>>
[转]工程师进阶之路(三)
查看>>
linux下修改当前目录下图像文件并删除
查看>>
solix归档规范
查看>>
php-fpm的重启
查看>>
从storyboard加载视图控制器
查看>>
最近的想法
查看>>
php中heredoc的使用方法
查看>>