Python学习之路3 - 字符串操作&字典

Posted 小短腿儿努力奔跑的日子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之路3 - 字符串操作&字典相关的知识,希望对你有一定的参考价值。

本节内容:

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

字符串操作

常用的字符串处理

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)
# 这种循环方式的效率没有第一种循环效率高,因为这种需要将字典转换成列表

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

以上是关于Python学习之路3 - 字符串操作&字典的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路4 - 文件操作&编码转换

Python学习之路2

python学习之路day4

Python3学习之路~5.7 Json & pickle 模块

Python学习之路day2

Python自动化3.0-------学习之路-------列表