版权声明:
本文作者为—陈鑫
本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用。
QQ: 499741233
E-mail: [email protected]
第1章 字符串处理
1.1 字符串转换
1.1.1 format() 字符串格式化
描 述:
1、花括号声明{}、用于渲染前的参数引用声明,花括号里面可以用数字代表引用参数的序号,或者变量直接引用。
2、从format参数引入的变量名。
3、冒号:为空格填充
4、字符位数声明。
5、千分位的声明。
6、变量类型的声明:字符串s、数字d、浮点数f
7、对齐方向符号: < 左对齐,>右对齐,^居中对齐。
8、属性访问符中括号:
9、使用惊叹号!后接a、r、s,声明是使用何种模式,acsii码模式,引用repr或str
10、增加类魔法函数,__format__(self,format),可以根据format前的字符串格式来制定不同的现实,如:‘{:xxxxx}‘此时xxx回作为参数传入__format__函数中。
实 例:
1、千分位、浮点数、填充字符、对齐的组合使用 #针对数字 #!/usr/bin/env python name = ‘{:>20,.3f}‘ #表示以空格(:)为填充符,右对齐(>)20个字符,浮点(.3)精确读为3个,f为浮点数声明 name_1 = name.format(1234567) print(name_1) 结果: 1,234,567.000 2、复杂数据格式化 #针对列表 #!/usr/bin/env python data = [4,8,15,16,24,67] print(‘{d[2]} {d[0]}‘.format(d=data)) 结果: 15 4
1.1.2 capitalize() 第一个字母变大写
描 述:将字符串的第一个字母变为大写字母(不是每个单词的首字母,而是一对双引号引起来的一组字符串)
输出结果;str
实 例:
#!/usr/bin/env python3 name = "chenxin chenxing wo ai ni" name1 = name.capitalize() print(name1) 结 果: Chenxin chenxing wo ai ni
1.1.3 casefold() 所有字母为小写
描 述:将字符串所有字母变为小写。
输出结果:str
实 例:
#!/usr/bin/env python3 name = "NI SHI SHA BI ME?" name1 = name.casefold() print(name1) 结 果: ni shi sha bi me?
1.1.4 swapcase()字母的大小写字符转换
描 述:用于对字符串的大小写字母进行转换
输出结果:str
实 例:
str = "this is string example....wow!!!"; print (str.swapcase()) str = "THIS IS STRING EXAMPLE....WOW!!!"; print (str.swapcase()) 结 果: THIS IS STRING EXAMPLE....WOW!!! this is string example....wow!!!
1.1.5 title()将所有单词的字母大写
描 述:方法标题化的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
输出结果:str
实 例:
#!/usr/bin/python str = "this is string example....wow!!!"; print (str.title()) 结 果: This Is String Example....Wow!!!
1.1.6 lower() 将所有大写转换为小写
描 述:转换字符串所有大写字符为小写
语 法:S.lower()
输出结果:字符串str
实 例:
#!/usr/bin/env python name = "CHENXIN" name1 = name.lower() print(name1) 结果: chenxin
1.2 字符串显示位置
1.2.1 center() 居中显示
描 述:指定输出n个字符,返回的原来字符居中现实,其他字符可指定填充,默认为空格。
输出结果:str
实 例:
#!/usr/bin/env python3 name = "chenxin" name1 = name.center(20,‘a‘) print(name1) str = "this is string example....wow!!!"; print ("str.center(80, ‘a‘) : ",str.center(80, ‘a‘)) 结 果: aaaaaachenxinaaaaaaa str.center(80, ‘a‘) : aaaaaaaaaaaaaaaaaaaaaaaathis is string example....wow!!!aaaaaaaaaaaaaaaaaaaaaaaa
1.2.2 ljust() 左对齐
描 述:指定输出n个字符,返回原来字符串左对齐显示,其他字符可指定也可默认,默认为空格。
语 法:S.ljust(width[, fillchar])
参 数:width=字符串的总长度,fillchar=填充的字符
输出结果:str
实 例:
#!/usr/bin/env python name = "chenxin" name1 = name.ljust(20,‘a‘) print(name1) 结 果: chenxinaaaaaaaaaaaaa
1.2.3 rjust() 右对齐
描 述:右对齐显示,指定填充字符,默认为空格
输出结果:str
输出结果:
#!/usr/bin/python str = "this is string example....wow!!!"; print (str.rjust(50, ‘0‘)) 结果: 000000000000000000this is string example....wow!!!
1.3 字符串切割
1.3.1 partition()指定分割符分割字符串
描 述:
方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
输出结果:返回一个3元的元组,str
实 例:
#!/usr/bin/python str = "http://www.w3cschool.cc/" print (str.partition("://")) 结果: ‘http‘, ‘://‘, ‘www.w3cschool.cc/‘)
1.3.2 rsplit切片
描 述:指定分割符对字符串进行切片
输出结果:list
实 例:
#!/usr/bin/python str = "Line1-abcdef \nLine2-abc \nLine4-abcd"; print (str.split( )) print (str.split(‘ ‘, 1 )) 结果: [‘Line1-abcdef‘, ‘Line2-abc‘, ‘Line4-abcd‘] [‘Line1-abcdef‘, ‘\nLine2-abc \nLine4-abcd‘]
1.3.3 rstrip()删除空格和换行符
描 述:删除字符串末尾的指定字符串,默认是为空格和换行符
输出结果:str
1.3.4 strip() 删除头尾指定字符
描 述:方法用于移除字符串头尾指定的字符(默认为空格)
输出结果:str
实 例:
#!/usr/bin/python str = "0000000this is string example....wow!!!0000000"; print (str.strip( ‘0‘ )) 结果: this is string example....wow!!!
1.3.5 count() 统计
描 述:方法用来统计,必须填写关键字,默认为从头到尾。
输出结果:int
实 例:
#!/usr/bin/env python name = ‘chenxin‘ name1 = name.count(‘e‘,0,4) print(name1) 结 果: 1
1.3.6 encode() 转换字符编码
描 述:方法encoding指定的编码格式编码字符串,
1.4 字符串判断
1.4.1 startswith()判断是否已指定字符开头
描 述:方法用于判断字符串是否是以指定的字符串开头
输出结果:Ture,False
实 例:
#!/usr/bin/python str = "this is string example....wow!!!"; print (str.startswith( ‘this‘ )) print (str.startswith( ‘is‘, 2, 4 )); print (str.startswith( ‘this‘, 2, 4 )); 结果: True True False
1.4.2 endswith() 判断是否以指定后缀结尾
描 述:方法用于判断字符串是否以指定后缀结尾。
输出结果:Ture,False
实 例:
#!/usr/bin/python str = "this is string example....wow!!!"; suffix = "wow!!!"; print (str.endswith(suffix)) print (str.endswith(suffix,20)) suffix = "is"; print str.endswith(suffix, 2, 4); print str.endswith(suffix, 2, 6); 结 果: True True True False
1.4.3 isalnum() 判断是否由字母和数字组成
描 述:检测一组字符串(整个字符串,而不是一个单词)是否由字符和数字组成
输出结果:True,False
实 例:
#!/usr/bin/env python
name = ‘chenxin‘
name1 = name.isalnum()
print(name1)
str = ‘this is string example....wow!!!‘
str1 = str.isalnum()
print(str1)
结果:
True
False
1.4.4 isalpha() 判断是否只有字母组成
描 述:检测字符串是否只有字母组成
输出结果:True,False
实 例:
#!/usr/bin/env python name = ‘chenxin‘ name1 = name.isalpha() print(name1) str = ‘chen12‘ str1 = str.isalpha() print(str1) 结果: True False
1.4.5 isdecimal() 判断是否只含十进制字符
描 述:检测字符串是否只包含十进制字符,这种方法址存在unicode对象,定义一个十进制字符串,只需要在字符串前面加‘u‘前缀即可。
输出结果:True,False
实 例:
#!/usr/bin/env python name = "123456" name1 = name.isdecimal() print(name1) str = "chenxin" print(str.isdecimal()) 结果: True False
1.4.6 isdigit() 判断是否只是数字
描 述:检测字符串是否只由数字组成
输出结果:True,False
1.4.7 isidentifier()判断是否合法的标识符
描 述:判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法:
输出结果:True,False
1.4.8 islower() 判断是否由小写字母组成
描 述:检测字符串是否只有小写字母组成
输出结果:True,False
1.4.9 isnumeric() 判断只包含数字
描述:判断只由数字组成,数字字符范围很大,比较isdigit范围大
输出结果:True,False
1.4.10 isprintable() 判断是否全部可打印
描 述:判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符
输出结果:True,False
1.4.11 isspace() 判断只包含空格或制表符
描 述:判断字符串是否仅包含空格或制表符。注意:空格字符与空白是不同的
返回结果:True,False
1.4.12 istitle()判断首字母大写
描 述:检测字符串所有单词拼写字母是否首字母大写,其他字母小写。
输出结果:返回True或False
1.4.13 isuppe()判断是否都是大写
描 述:检测字符串是否都为大写。
输出结果:返回True或False
1.5 字符串查找替换
1.5.1 join()
描 述:使用连接符str来连接iterable对象中的元素,返回一个被str连接起来的,由iterable对象的元素组成的字符串。如果传入一个非iterable对象,如整数、布尔值等,将返回Type Error。
输出结果:str
1.5.2 replace()替换
描 述:方法把字符串的原字符串替换成新字符串。
输出结果:str
实 例:
#!/usr/bin/python str = "this is string example....wow!!! this is really string"; print (str.replace("is", "was")) print (str.replace("is", "was", 3)) 结果: thwas was string example....wow!!! thwas was really string thwas was string example....wow!!! thwas is really string
1.5.3 find() 查找
描 述:检测字符串中是否包含想要查找的字符。如果包含字符串返回字符串的索引值,否则返回-1
输出结果:索引或-1
实 例:
#!/usr/bin/env python name = ‘chenxin shi da hao ren.‘ name1 = name.find(‘hao‘,20) print(name1) name2 = name.find(‘hao‘,10) print(name2) 结 果: -1 15
1.5.4 index() 查找
描 述:检测字符串中是否包含子字符串str
输出结果:索引值或报错
#!/usr/bin/python str1 = "this is string example....wow!!!"; str2 = "exam"; print str1.index(str2); print str1.index(str2, 10); print str1.index(str2, 40); 结 果: 15 15
1.5.5 lstrip()用来截掉字符串左边的空格或者指定符
描 述:用来截掉字符串左边的空格或者指定字符
返回结果:str
实 例:
#!/usr/bin/python str = " this is string example....wow!!! "; print str.lstrip(); str = "88888888this is string example....wow!!!8888888"; print str.lstrip(‘8‘); 结果: this is string example....wow!!! this is string example....wow!!!8888888
1.5.6 macketrans()
描 述:方法用于创建字符映射的转换表,对弈接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换字符,第二个参数也是字符串表示转换的目标。
参 数:
intab---字符串中要替代的字符组成的字符串。
outtab---相应的映射字符的字符串
输出结果:str
实 例:
#!/usr/bin/python # -*- coding: UTF-8 -*- from string import maketrans # 必须调用 maketrans 函数。 intab = "aeiou" outtab = "12345" trantab = maketrans(intab, outtab) str = "this is string example....wow!!!"; print str.translate(trantab); 结果: th3s 3s str3ng 2x1mpl2....w4w!!!
第2章 list列表
2.1 增
2.1.1 append()
描 述:方法用于往列表里添加元素
输出结果:list
实 例:
names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #增 names.append(‘wangxingyu‘) print(names) 结果: [‘qinfu‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘, ‘wangxingyu‘]
2.1.2 extend()添加列表
描 述:用来在列表末尾一次性追加另一个列表中的多个值
输出结果:list
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] list = [‘cc‘] names.extend(list) print ("Extended List : ",names) 结果: Extended List : [‘qinfu‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘, ‘cc‘]
2.2 删
2.2.1 remove()删除
描 述:用来指定字符串删除列表内容
输出结果:list
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] #删 names.remove("qinfu") print(names) 结果 [‘123‘, ‘chenxin‘, ‘liuqiang‘]
2.2.2 del删除
描 述:指定列表索引删除
输出结果:list
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] del names[2] print(names) 结果: [‘qinfu‘, ‘123‘, ‘liuqiang‘]
2.3 改
2.3.1 指定索引修改
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] #改 names[0]=‘陈鑫‘ print(names) 结果: [‘陈鑫‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘]
2.4 查
2.4.1 指定索引查询
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #查 print(names[-2]) print(names[1:4]) 结果: chenxin [‘123‘, ‘chenxin‘, ‘liuqiang‘]
2.5 插入
2.5.1 insert 插入
描 述:指定索引,在索引前添加内容
输出结果:list
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #插入 names.insert(1,"tanshaomeng") print(names) 结果: [‘qinfu‘, ‘tanshaomeng‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘]
2.6 统计
2.6.1 count
描 述:用来统计数量,只能指定字符串统计个数。
输出结果:int
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #统计 print(names.count(‘liuqiang‘)) 结果: 1
2.7 清空
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #清空 names.clear() print(names) 结果: []
2.8 排序
2.8.1 reverse()列表反转
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #排序 names.reverse() print(names) 结果: [‘liuqiang‘, ‘chenxin‘, ‘123‘, ‘qinfu‘]
2.8.2 sort() 按照acsii码表排序
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #排序 names.sort() print(names) 结果: [‘123‘, ‘chenxin‘, ‘liuqiang‘, ‘qinfu‘]
2.9 复制
2.9.1 copy()
描 述:复制列表,开辟新的内存空间
实 例:
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # 复制 na = names.copy() print(names) del names[2] print(na) 结 果: [‘qinfu‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘] [‘qinfu‘, ‘123‘, ‘chenxin‘, ‘liuqiang‘]
2.9.2 直接使用等号
描 述: 直接使用等号,在小字节的时候与copy一样,但是字节多的时候,等号就会跟着改变
2.10 循环遍历列表
实 例:
#/usr/bin/env python
names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘]
#列表循环
for i in names:
print(i)
结 果:
qinfu
123
chenxin
liuqiang
2.11 1循环遍历列表,输出索引
#/usr/bin/env python names = [‘qinfu‘,‘123‘,‘chenxin‘,‘liuqiang‘] # #取出列表元素对应商品 for i,ele in enumerate(names): print(i,ele) 结 果: 0 qinfu 1 123 2 chenxin 3 liuqiang
第3章 dict字典
字典特点:
1、查询速度快
2、key唯一
3、key是不可变的
4、无序的
5、必列表内存空间多。
为什么快与为什么空间大呢?
Python的hash只是在单个程序或者说一个进程是唯一的。字典是使用hash将字符串变成数字,利用二分算法进行查询的。
3.1 增
3.1.1 setdefault()
描 述:先查询字典中有没有键,如果没有则会加键,值可以指定默认
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 增 print(info.setdefault(‘姓名‘)) print(info.setdefault(‘cx‘,‘cx‘)) print(info) 结 果: 陈鑫 cx {‘工作‘: ‘IT‘, ‘cx‘: ‘cx‘, ‘姓名‘: ‘陈鑫‘, ‘年龄‘: ‘21‘}
3.2 删
3.2.1 pop()
描 述:移除字典数据,删除指定键并值,
返回 值:返回未删除的键,
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 删 info.pop(‘姓名‘) print(info) 结 果: {‘工作‘: ‘IT‘, ‘年龄‘: ‘21‘} dict_keys([‘工作‘, ‘年龄‘])
3.2.2 popitem()
描 述:随机返回并删除字典中的一对键值,
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 删 info.popitem() print(info) 结 果: {‘姓名‘: ‘陈鑫‘, ‘年龄‘: ‘21‘} dict_keys([‘姓名‘, ‘年龄‘])
3.3 改
3.3.1 update()更新
描 述:将一个字典更新到另一个字典中
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 改 info1 = {‘爱好‘:‘足球‘} info.update(info1) print(info) 结 果: {‘姓名‘: ‘陈鑫‘, ‘工作‘: ‘IT‘, ‘年龄‘: ‘21‘, ‘爱好‘: ‘足球‘}
3.4 查
3.4.1 get查看value值
描 述:返回指定键的值,如果值不存在字典中返回默认值
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 查 print ("Value : %s" % info.get(‘姓名‘)) print ("Value : %s" % info.get(‘Sex‘, "nnnn")) 结 果: Value : 陈鑫 Value : nnnn
3.5 清除
3.5.1 clear()
描 述:用来删除字典内所有元素
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 清除 print(len(info)) info.clear() print(len(info)) 结 果: 3 0
3.6 复制
3.6.1 copy()
描 述:复制字典,如果原字典修改,复制出来的字典不会修改,是新开辟出内存空间
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 复制 print(info) info1 = info.copy() print(info1) 结 果: {‘工作‘: ‘IT‘, ‘年龄‘: ‘21‘, ‘姓名‘: ‘陈鑫‘} {‘工作‘: ‘IT‘, ‘年龄‘: ‘21‘, ‘姓名‘: ‘陈鑫‘}
3.6.2 等号
描 述:复制字典,两个字典变量指向同一内存空间,在字典大的时候,原字典修改,复制字典也会跟着修改,而不会开辟另一块内存空间
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } # 复制 info1 = info print(info1) 结 果: {‘年龄‘: ‘21‘, ‘姓名‘: ‘陈鑫‘, ‘工作‘: ‘IT‘}
3.7 初始化字典
3.7.1 fromkeys()
描 述:用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
返回 值:返回字典
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } #初始化 dict = dict.fromkeys(info) print(dict) dict = dict.fromkeys(info,10) print(dict) print(type(dict)) 结 果: {‘年龄‘: None, ‘工作‘: None, ‘姓名‘: None} {‘年龄‘: 10, ‘工作‘: 10, ‘姓名‘: 10} <class ‘dict‘>
3.8 格式转换
3.8.1 items() 转换元组
描 述:以列表返回可遍历的元组数组
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } #转换元组 info_yz = info.items() print(type(info_yz)) for i in info_yz: print(i) 结 果: <class ‘dict_items‘> (‘年龄‘, ‘21‘) (‘姓名‘, ‘陈鑫‘) (‘工作‘, ‘IT‘)
3.8.2 keys()转换列表
描 述:以列表返回一个字典所有的键
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } list_dict = info.keys() print(list_dict) 结 果: dict_keys([‘姓名‘, ‘工作‘, ‘年龄‘])
3.8.3 values()
描 述:将字典以列表返回到所有值
实 例:
#/usr/bin/env python info = { ‘姓名‘:‘陈鑫‘, ‘年龄‘:‘21‘, ‘工作‘:‘IT‘ } #转换列表 info1 = info.values() print(info1) 结 果: dict_values([‘21‘, ‘IT‘, ‘陈鑫‘])
第4章 元组处理
元组,是一个只读列表。
4.1 统计
4.1.1 count()
描 述:统计一个元素有在这个元组中有几个 实 例: #/usr/bin/env python names = (‘chenxin‘,‘chenxiang‘,‘jinzhong‘) print(names.count(‘chenxin‘)) 结 果: 1
4.2 查找
4.2.1 index()
描 述:查找元素的索引值 实 例: #/usr/bin/env python names = (‘chenxin‘,‘chenxiang‘,‘jinzhong‘) print(names.index(‘jinzhong‘)) 结 果: 2
第5章 set集合
1.去重,把一个列表变成集合,就自动去重了
2.关系测试,测试两组数据之间的交集,差集,并集等关系。
5.1 创建一个数值集合
list_1 = set([1,4,5,7,3,6,7,9]) list_2 = set([2,6,0,66,22,8,4])
5.2 交集(list_1 & list_2)
print(list_1.intersection(list_2))
5.3 并集
print(list_1.union(list_2))
5.4 差集
print(list_1.difference(list_2)) print(list_2.difference(list_1))
5.5 子集
print(list_1.issubset(list_2))
5.6 父集
list_3 = set([1,3,7]) print(list_3.issubset(list_1)) #list_3是list_1的子集 print(list_1.issuperset(list_3))
5.7 对称差集(list_1 ^ list_2)
print(list_1.symmetric_difference(list_2)) #对称差集,互相没有的取出来,去掉两个两个集合中重复的
5.8 反向差集
5.8.1 添加
list_1.add(999) #添加一项 list_1.update([888,777,555]) #添加多项 print(list_1)
5.8.2 删除
print (list_1.discard(555)) #discard不存在不会报错 print(list_1.remove(888)) #remove不存在,会报错,删掉了也不会返回数据 print(list_1)