版权声明:
本文作者为—陈鑫
本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用。
QQ:499741233
E-mail:499741233@qq.com
第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!!!
thisis 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'))
结果:
000000000000000000thisis 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'))
结果:
thisis 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
View Code
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!!! thwasis really string
View Code
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
View Code
1.5.4 index() 查找
描 述:检测字符串中是否包含子字符串str
输出结果:索引值或报错
#!/usr/bin/python
str1= "this is string example....wow!!!";
str2= "exam";printstr1.index(str2);print str1.index(str2, 10);print str1.index(str2, 40);
结 果:15
15
View Code
1.5.5 lstrip()用来截掉字符串左边的空格或者指定符
描 述:用来截掉字符串左边的空格或者指定字符
返回结果:str
实 例:
#!/usr/bin/python
str= "this is string example....wow!!!";printstr.lstrip();
str= "88888888this is string example....wow!!!8888888";print str.lstrip('8');
结果:
thisisstring example....wow!!!
thisis string example....wow!!!8888888
View Code
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!!!";printstr.translate(trantab);
结果:
th3s 3s str3ng 2x1mpl2....w4w!!!
View Code
第2章 list列表
2.1 增
2.1.1 append()
描 述:方法用于往列表里添加元素
输出结果:list
实 例:
names = ['qinfu','123','chenxin','liuqiang']##增
names.append('wangxingyu')print(names)
结果:
['qinfu', '123', 'chenxin', 'liuqiang', 'wangxingyu']
View Code
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']
View Code
2.2 删
2.2.1 remove()删除
描 述:用来指定字符串删除列表内容
输出结果:list
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']#删
names.remove("qinfu")print(names)
结果
['123', 'chenxin', 'liuqiang']
View Code
2.2.2 del删除
描 述:指定列表索引删除
输出结果:list
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']del names[2]print(names)
结果:
['qinfu', '123', 'liuqiang']
View Code
2.3 改
2.3.1 指定索引修改
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']#改
names[0]='陈鑫'
print(names)
结果:
['陈鑫', '123', 'chenxin', 'liuqiang']
View Code
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']
View Code
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']
View Code
2.6 统计
2.6.1 count
描 述:用来统计数量,只能指定字符串统计个数。
输出结果:int
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']##统计
print(names.count('liuqiang'))
结果:1
View Code
2.7 清空
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']##清空
names.clear()print(names)
结果:
[]
View Code
2.8 排序
2.8.1 reverse()列表反转
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']##排序
names.reverse()print(names)
结果:
['liuqiang', 'chenxin', '123', 'qinfu']
View Code
2.8.2 sort() 按照acsii码表排序
实 例:
#/usr/bin/env python
names = ['qinfu','123','chenxin','liuqiang']##排序
names.sort()print(names)
结果:
['123', 'chenxin', 'liuqiang', 'qinfu']
View Code
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']
View Code
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 inenumerate(names):print(i,ele)
结 果:
0 qinfu1 123
2chenxin3 liuqiang
View Code
第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'}
View Code
3.2 删
3.2.1 pop()
描 述:移除字典数据,删除指定键并值,
返回 值:返回未删除的键,
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#删
info.pop('姓名')print(info)
结 果:
{'工作': 'IT', '年龄': '21'}
dict_keys(['工作', '年龄'])
View Code
3.2.2 popitem()
描 述:随机返回并删除字典中的一对键值,
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#删
info.popitem()print(info)
结 果:
{'姓名': '陈鑫', '年龄': '21'}
dict_keys(['姓名', '年龄'])
View Code
3.3 改
3.3.1 update()更新
描 述:将一个字典更新到另一个字典中
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#改
info1 = {'爱好':'足球'}
info.update(info1)print(info)
结 果:
{'姓名': '陈鑫', '工作': 'IT', '年龄': '21', '爱好': '足球'}
View Code
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
View Code
3.5 清除
3.5.1 clear()
描 述:用来删除字典内所有元素
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#清除
print(len(info))
info.clear()print(len(info))
结 果:30
View Code
3.6 复制
3.6.1 copy()
描 述:复制字典,如果原字典修改,复制出来的字典不会修改,是新开辟出内存空间
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#复制
print(info)
info1=info.copy()print(info1)
结 果:
{'工作': 'IT', '年龄': '21', '姓名': '陈鑫'}
{'工作': 'IT', '年龄': '21', '姓名': '陈鑫'}
View Code
3.6.2 等号
描 述:复制字典,两个字典变量指向同一内存空间,在字典大的时候,原字典修改,复制字典也会跟着修改,而不会开辟另一块内存空间
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#复制
info1 =infoprint(info1)
结 果:
{'年龄': '21', '姓名': '陈鑫', '工作': 'IT'}
View Code
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}
View Code
3.8 格式转换
3.8.1 items() 转换元组
描 述:以列表返回可遍历的元组数组
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#转换元组
info_yz =info.items()print(type(info_yz))for i ininfo_yz:print(i)
结 果:('年龄', '21')
('姓名', '陈鑫')
('工作', 'IT')
View Code
3.8.2 keys()转换列表
描 述:以列表返回一个字典所有的键
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}
list_dict=info.keys()print(list_dict)
结 果:
dict_keys(['姓名', '工作', '年龄'])
View Code
3.8.3 values()
描 述:将字典以列表返回到所有值
实 例:
#/usr/bin/env python
info ={'姓名':'陈鑫','年龄':'21','工作':'IT'}#转换列表
info1 =info.values()print(info1)
结 果:
dict_values(['21', 'IT', '陈鑫'])
View Code
第4章 元组处理
元组,是一个只读列表。
4.1 统计
4.1.1 count()
描 述:统计一个元素有在这个元组中有几个
实 例:#/usr/bin/env python
names = ('chenxin','chenxiang','jinzhong')print(names.count('chenxin'))
结 果:1
View Code
4.2 查找
4.2.1 index()
描 述:查找元素的索引值
实 例:#/usr/bin/env python
names = ('chenxin','chenxiang','jinzhong')print(names.index('jinzhong'))
结 果:2
View Code
第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])
View Code
5.2 交集(list_1 & list_2)
print(list_1.intersection(list_2))
5.3 并集
print(list_1.union(list_2))
View Code
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)