本节内容:

  • 常用的字符串处理。
  • 格式化输出字符串。
  • 字符串的替换。
  • 字符串和二进制的相互转化。
  • 字典的操作

字符串操作

常用的字符串处理

name = 'vector'

print(name.capitalize()) # 首字母大写
print(name.count('e')) # 判断字符e在字符串中有多少个
print(name.center(50,'-')) # 一共打印50个字符,将vector放在中间,两边用-填充
print(name.endswith('r')) # 判断字符串以什么结尾, 如果是以r结尾则返回true
print(name.expandtabs(tabsize=10)) # 如果在字符串中加入\t,则在该位置上加入tabsize个空格
print(name.find('ec')) # 找到e在字符串中的位置
print(name.isalnum()) # 如果字符串里面只包含英文和数字, 则返回True
print(name.isalpha()) # 如果字符串里面是纯英文, 则返回True
print(name.isdecimal()) # 如果字符串是十进制数字, 则返回True
print(name.isdigit()) # 如果字符串是否为整数, 则返回True
print(name.isidentifier()) # 判断是否是一个合法的标识符(变量名), 合法则返回True
print(name.islower()) # 判断是否为小写, 是则返回True
print(name.isupper()) # 判断是否为大写, 是则返回True
print(name.isspace()) # 判断是否为空格, 是则返回True
print('My Name Is'.istitle()) # 判断是否为标题(首字符大写), 是则返回True
print('+'.join(['1','2','3'])) # 将列表里面的每个元素用'+'拼接起来
print(name.ljust(50,"*")) # 如果字符串长度小于50, 则不够的在左侧用*补充
print(name.rjust(50,"*")) # 如果字符串长度小于50, 则不够的在右侧用*补充
print(name.lower()) # 将大写变成小写
print(name.upper()) # 将小写变成大写
print('\nvector'.lstrip()) # 去掉字符串左边的空格和回车
print('vector\n'.rstrip()) # 去掉字符串右边的空格和回车
print('\nvector\n'.strip()) # 去掉字符串两边的空格和回车
print('name is a book'.rfind('a')) # 从右边开始找a,返回找到的位置
print('name is a book'.split(' ')) # 将字符串按照空格为界分装成列表, 不写参数则分隔符默认为空格
print('name is \na book'.splitlines()) # 将字符串根据换行符为界分装成列表
print('name is a book'.swapcase()) # 大小写互换
print('name is a book'.title()) # 将字符串变成标题(首字母大写)
print('name'.zfill(50)) # 如果字符串不够50个,则在左边用0填充

格式化输出字符串

name = 'vector {name} {age}'
print(name.format(name = 'rev',age=123)) # 格式化字符串
print(name.format_map({'name':'rev','age':123})) # 字典的形式格式化字符串

字符串替换

#先用maketrans设置替换规则, 然后用translate执行替换
p = str.maketrans('asdfgn','123456') #第一个参数是被替换的字符,第二个参数是替换的字符
print('name'.translate(p)) # 将规则p传入,打印出来的就是61me,因为n和a被6和1替换掉了 print('name'.replace('n','b',1)) # 将n换成b,第三个参数表示替换几个,如果不写则默认全部替换

字符串和二进制的相互转化

msg = '我爱大延边日不落帝国'
print(msg) # 字符串输出
print(msg.encode(encoding='utf-8')) # 将字符串转换成二进制
print(msg.encode(encoding='utf-8').decode(encoding='utf-8')) # 将二进制转换成字符串
encode参数表示之前是什么格式的,decode参数表示要转换成什么格式的。
如果encode和decode不写参数,默认就是utf-8。

字典

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

语法:

info = {
'str1':'zhangsan',
'str2':'lisi',
'str3':'wangwu',
'str4':'zhaoliu'
}

常见的字典操作:

info = {
'str1':'zhangsan',
'str2':'lisi',
'str3':'wangwu',
'str4':'zhaoliu'
} print(info) # 打印全部字典
print(info['str2']) # 根据键名打印字典元素
info['str1'] = 'yangzirui' # 这样就会修改值, 如果键名不存在则会直接创建
del info['str2'] # 删除该元素
info.pop('str2') # 这也是删除
print(info.popitem()) # 随机删除一个, 并返回他的键值对
print(info['str1']) # 打印数据, 如果键名不存在, 就会报错,不推荐用
print(info.get('str2')) # 打印数据, 如果键名不存在, 则返回none, 推荐
print('str1' in info) # 判断键名是否存在,存在打印true,否则打印false
aaa = info.setdefault('str5','liangsohohfefho') # 如果info里面有键为str5的,则直接返回对应的值;如果没有,则创建后返回对应的值 a = {
'str1':'asdfsdfd',
1:2,
2:3
}
info.update(a) # 将字典a合并到info中,如果有交叉,则用a字典中的值
info.items() # 将字典转成列表, 列表中的每个元素都由元组组成,每个元组又原字典的每个键值对组成 c = dict.fromkeys([1,2,3],'test') # 创建一个新字典, 键为1,2,3, 值均为test, 如果不写值,则均为none;后面赋的值是三个键共有的, 所以改一个就全都改了

循环字典:

info = {
'str1':'zhangsan',
'str2':'lisi',
'str3':'wangwu',
'str4':'zhaoliu'
}
#第一种循环方法
for i in info:
print(i,info[i])
# 这应该是最基本的循环了 # 第二种循环方法
for k,v in info.items():
print(k,v)
# 这种循环方式的效率没有第一种循环效率高,因为这种需要将字典转换成列表

输出结果:(两种循环方式均是这样)

最新文章

  1. xamarin 一般错误解决办法
  2. Memcached在windows下安装与使用
  3. EF Code First教程-02 约定配置
  4. 【笨嘴拙舌WINDOWS】GDI(1)
  5. CF Fox And Names (拓扑排序)
  6. Android开发手记(16) 数据存储一 SharedPreferences
  7. 网页压缩gzip的问题及说明教程
  8. (7)基于hadoop的简单网盘应用实现3
  9. android:强大的图像下载和缓存库Picasso
  10. (八)python的简单数据类型和变量
  11. dotnetcore 自动迁移工具
  12. 生成ISO文件
  13. Linux下源码安装并配置Nginx
  14. Spring的AOP开发的相关术语
  15. ZIP压缩包加密破解
  16. jQuery中ajax如何返回值到上层函数里?
  17. Tomcat线程池的深入理解
  18. springCloud之配置中心学习
  19. 并行【parallel】和并发【concurrency】线程是并发还是并行,进程是并发还是并行
  20. Java零拷贝

热门文章

  1. 微信小程序快速转成百度小程序的方法
  2. Spark Streaming job的生成及数据清理总结
  3. Python安装及简介
  4. 嵌入式LInux之C语言提升篇---Skr Skr Up Up
  5. Django之图书管理系统
  6. [POJ1014]Dividing(二进制优化多重背包)
  7. POJ青蛙的约会
  8. Java:List判空的条件:List=null 和 List.size = 0
  9. libevent学习七(bufferevent)
  10. javaweb(九)—— 通过Servlet生成验证码图片