Python的字符串与字典

字符串

对字符串中的符号进行转义

print('let\'s go')  # let's go,加/
print("let's go")  # let's go,用双引号就可以识别单引号,不需要进行转义
print(r'C:\Program Files\Intel\Wifi\Help')  # C:\Program Files\Intel\Wifi\Help,加r

多行字符串

'''
可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]以及其他特殊字符
'''
"""
可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]以及其他特殊字符
"""

更改字符串大小写的函数

capitalize()  #将字符串的第一个字符转换为大写
lower()  #转换字符串中所有大写字符为小写
upper()  #转换字符串中的小写字母为大写
swapcase()  #将字符串中大写转换为小写,小写转换为大写

查找字符的函数

count(str, beg= 0,end=len(string)) #返回str在 string 里面出现的次数,默认 beg= 0,end=len(string),如果beg或者end指定则返回指定范围内str出现的次数
find(str, beg=0, end=len(string)) #检测 str 是否包含在字符串中,如果指定范围 beg 和 end,则检查是否包含在指定范围内,如果包含,返回开始的索引值(下标),否则返回 -1
rfind(str, beg=0,end=len(string)) #类似于 find() 函数,不过是从右边开始查找,如果包含,返回开始的索引值(下标),否则返回 -1
isnumeric()  #如果字符串中只包含数字字符,则返回 True,否则返回 False

填充字符串

ljust(width[, fillchar])  #返回一个原字符串左对齐,并使用fillchar(默认空格)填充至长度width的新字符串
例:str4 = '1101'
    print(str4.ljust(8, '0'))  # 11010000
rjust(width[, fillchar]) #返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串
例:str4 = '1101'
    print(str4.rjust(8, '0'))  # 00001101

删除字符

若对同一个字符串进行多次删除操作,则函数由左至右依次进行

lstrip([chars])  #截掉字符串左边的空格或指定字符
rstrip([chars])  #删除字符串末尾的空格或指定字符
strip([chars])  #在字符串上执行lstrip()和rstrip()

查找子字符串sub

partition('sub') #找到子字符串sub,sub可以任意更改,把字符串分为一个三元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串','','')
rpartition('sub') #类似于partition()方法,不过是从右边开始查找

字符替换

 replace(old, new [, max]) # 将字符串中的old替换成new,如果max指定,则替换不超过max次

字符串切片为多个字符串

以空格或者特定字符为分隔符

split(str=" ", num)  #不带参数默认是以空格(也可为子字符)为分隔符(切片后不包含分隔符)切片字符串,如果num参数有设置,则仅分隔num个子字符串,返回切片后的子字符串拼接的列表
print((u.split(".", 2)[1]))  #以"."为分隔符,分割2次,并取下标为1的项

按照行(’\r’, ‘\r\n’, \n’)分隔

splitlines([keepends]) #按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数keepends为 False,不包含换行符,如果为 True,则保留换行符
例:str6 = 'I \r\n Love \n LsgoGroup'
print(str6.splitlines())  # ['I ', ' Love ', ' LsgoGroup']
print(str6.splitlines(True))  # ['I \r\n', ' Love \n', ' LsgoGroup']

转换字符

maketrans(intab, outtab)  #创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标;函数返回字符对应的ASCII码,格式为 {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
translate(table, deletechars="")  #根据参数table给出的表,转换字符串的字符,要过滤掉的字符放到deletechars参数中

字符串格式化

format 格式化函数

str8 = "{0} Love {b}".format('I', b='Lsgogroup')  # 位置参数要在关键字参数之前
print(str8)  # I Love Lsgogroup

str8 = '{0:.2f}{1}'.format(27.658, 'GB')  # 保留小数点后两位
print(str8)  # 27.66GB

Python 字符串格式化符号

符号 描述
%c	格式化字符及其ASCII码     #将ASCII码转换为对应的字符,不能反过来
%s	格式化字符串,用str()方法处理对象   #返回的字符串不带引号
%r	格式化字符串,用rper()方法处理对象   #返回的字符串带单引号
%d	格式化整数
%o	格式化无符号八进制数      #将十进制数转换为八进制数
%x	格式化无符号十六进制数      #将十进制数转换为十六进制数(小写)
%X	格式化无符号十六进制数(大写)     #将十进制数转换为十六进制数(大写)
%f	格式化浮点数字,可指定小数点后的精度  #默认为小数点后六位
%e	用科学计数法格式化浮点数    #小写e
%E	作用同%e,用科学计数法格式化浮点数   #大写E
%g	根据值的大小决定使用%f或%e    #小数点后,末位数字为0则不保留
%G	作用同%g,根据值的大小决定使用%f或%E   #小数点后,末位数字为0则不保留
print('%5.1f' % 27.658)  # ' 27.7'  m.n	m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
print('%.2e' % 27.658)  # 2.77e+01  e前的数字代表小数点后的位数
print('%10d' % 10)  # '        10'   d前的数字代表用空格填充数字左侧,使位数达到某一个确定位数,并且右对齐
print('%-10d' % 10)  # '10        'd前的‘-数字’代表用空格填充数字右侧,使位数达到某一个确定位数,并且左对齐
print('%+d' % 10)  # +10      d前的+要在输出的数字前显示
print('%#o' % 10)  # 0o12     在八进制数前面显示'0o'
print('%#x' % 108)  # 0x6c   在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
print('%010d' % 5)  # 0000000005   d前的‘0数字’代表用‘0’填充数字左侧,使位数达到某一个确定位数,并且右对齐

可变类型与不可变类型

数值、字符和元组 都能被哈希,因此它们是不可变类型
列表、集合、字典不能被哈希,因此它是可变类型

字典

含有2个元素的列表、元组都可以更改为字典

创建一个新字典

dict.fromkeys(seq[, value])  #用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

以列表的形式提取字典中的键

dict.keys()

以列表的形式提取字典中的值

dict.values()

以列表或元组的形式返回可遍历的 (键, 值) 元组数组

dict.items()

返回指定键的值

dict.get(key[,default])    #若列表中不含指定键,则返回default值,default可自行更改,默认为None

删除字典给定键 key 以及所对应的值

dict.pop(key[,default])    #返回值为被删除的值,若列表中不含指定键,则返回default值,无default则会报错
del dict[key]  #无返回值,若列表中不含指定键,则会报错
dict.popitem()  #随机删除字典中的一对键和值,并返回删除的键值,如果字典已经为空,却调用了此方法,就报出KeyError异常
dict.clear()  #用于删除字典内所有元素

直接赋值和 copy 的区别

浅拷贝:父对象(一级目录不会随之改变),子对象不拷贝,还是引用(二级目录会随之改变)
赋值:父对象、子对象均是引用,都会随之改变
深拷贝:父对象、子对象都是拷贝,都不会随之改变

向字典中添加键值对

dict.update(dict2)  #把字典参数 dict2 的 key:value对更新到字典 dict 里,并放置在dict的后边

猜你喜欢

转载自blog.csdn.net/xiaokeaiuiya/article/details/108508374