常见的类型
列表
- list.count(data) data出现的次数
- list.sort([reverse=False]) 升序排序
- list.reverse() 翻转
- list.index() 返回data第一次出现的索引
- 删除操作
- del list[index] 删除指定索引的数据
- list.remove[data] 删除第一个出现的指定数据
- list.pop() 删除末尾数据,并返回
- list.pop(index) 删除指定索引的数据,并返回
- 插入操作
- list.insert(index,data) 在指定位置插入数据
- list.append(data) 在末尾追加数据
- list.extentd(list2) 将列表2的数据追加到列表1
- 更多方法
ipython3 中 输入列表数据,按下tab键,可智能提示 关键字: import keyword print(keyword.kwlist)
元祖
- info.count
- info.index
- 列表元祖相互转换
字典
- dict.keys() 所有key列表
- dict.values() 所有value列表
- 取值
- dict[key] key不存在会报错
- dict.get(key) key不存在不报错
- 删除
- del dict[key] key不存在会报错
- dict.pop(key) 删除指定键值对,key不存在会报错 并返回值
- dict.popitem() 随机删除一个键值对,并返回元祖
- dict.clear() 清空字典
- 新增
- dict[key] = value 如果key存在修改,不存在则创建
- dict.setdefault(key,value) 如果Key存在,不修改数据,如果key不存在,则创建
- dict.update(dict2) 将字典2的数据合并到字典1
字符串
- 判断类型
- string.ispace() 都是空格,返回True
- string.isalnum() 至少含有一个字符,并且所有的字符都是字符或数字,返回True
- string.isalpha() 至少有一个字符,并且所有字符都是字母,返回True
- string.isdecimal() 只包含全角,unicode数字,返回True
- string.isdigit() 只包含unicode数字,byte数字(单字节),全角数字(双字节),返回True
- string.isnumeric() 只包含unicode数字,全角数字,罗马数字,汉子数字,返回True
- string.istitle() 是标题化,返回True
- string.islower() 至少包含一个区分大小写的字符,并且这些字符都是小写,返回True
- string.isupper() ...都是大写,返回True
- 查找和替换
- string.startswith(str) 检查字符串是否以str开头
- string.endswith(str) 检查字符串是否以str结尾
- string.find(str,start=0,end=len(string)) 检查str是否包含在string中,是返回索引值,否返回-1
- string.rfing(str,...) 从右开始查找
- string.index(str,...) 值不存在会报错
- string.rindex(str,...) 从右边找
- string.replace(old_str,new_str,num=string.count(old)) 把string中的old_str替换成new_str,替换不超过num次
- 大小写转换
- string.capitalize() 把字符串的第一个字符大写
- string.title() 把字符串的每个单词首字母大写
- string.lower() 转换string中所有大写为小写
- string.upper() ...大写
- string.swapcase() 翻转大小写
- 文本对齐
- string.ljust(width) 返回一个左对齐,并用空格填充至长度为width的新字符串
- string.rjust(width)
- string.center(width)
- 取出空白字符
- string.lstrip() 去掉string左边的空白字符
- string.rstrip()
- string.strip()
- 拆分和连接
- string.partition(str) 把字符串分成一个3元素的元祖
- string.rpartition(str) 从右查找分割
- string.split(str="",num) 以str分割字符串,仅分割num次
- string.splitlines() 按照r,n,rn分割,返回各行
- string.join(seq) 以string为分割符,将seq中所有的元素合并一个新的字符串
- 切片---顾头不顾尾
- 截取末尾2个字符str[-2]
- 倒序截取str[::-1]
集合
- set(list) 集合列表转换
- set1 & set2 交集
- set1 | set2 并集
- set1 ^ set2 对称交集
- set1 - set2 差集
内置函数
- len(item)
- del(item)
- max(item)
- min(item)
- map
map(lambda x,y: x+y,[1,2,3],[4,5,6])
- filter
filter(lambda x: x%2,3,4])
- sorted
- dir()
- isinstance(value,type)
- issubclass(son,fathor)
- 反射
- getattr
- hasattr
- setattr
- delattr
类
常见的方法
- __str__
- __repr__
如果类中没有__str__方法,会掉用__repr__方法
- __call__
- __len__
- __hash__
- __eq__
-
__getattribute__() 属性拦截器 class A(object):
def __getattribute__(self,item):
if item == 'num':
return '禁止访问'
else:
return object.__getattribute__(self,item) ### 常见的坑
class A(object):
def __getattribute__(self,item):
if item.startswith('a'):
return 'a'
else:
# 千万不要返回属性,否则会无线重复调用
return self.test
def test(self):
print('in test')
类常见属性
- cls.__dict__ 查看类的属性
- cls.__dict__ 查看类的帮助文档
- cls.__name__ 查看类的名字
- cls.__base__ 查看类的第一个父类
- cls.__bases__ 查看类的父类构成的元祖
- cls.__module__ 查看类定义所在的模块
- 实例对象.__class__ 查看实例所对应的类
-
__slots__ 限制类中能增加的属性 类封装
@property @staticmethod @classmethod
class A():
def __init__(self):
self.__num = 10
@property
def num(self):
return self.__money
@num.setter
def num(self,value):
if isinstance(value,int):
self.__money = value
else:
print('error')
a = A()
a.num #获取
a.num = 100 #设置
继承
mro() 钻石和小乌龟模型
常见的模块
builtine |
内建函数默认加载 |
os |
操作系统接口 |
sys |
Python解释器 |
functools |
常用工具 |
json |
编码和解码JSON对象 |
loggin |
记录日志,调试 |
threading |
多线程 |
copy |
拷贝 |
time |
时间 |
datatime |
日期和时间 |
calendar |
日历 |
re |
正则 |
socket |
标准的BSD Socket API |
shutil |
文件和目录管理 |
glob |
基于文件通配符搜索 |
requests |
爬虫常用模块 |
scrapy |
爬虫 |
beautifulsoup4 |
HTML/XML的解析器 |
celery |
分布式任务调度模块 |
redis |
缓存 |
Pillow(PIL) |
图形处理 |
xlsxwriter |
仅写excle功能,支持xlsx |
xlwt |
仅写excle功能,支持xls,2013或更早版的office |
xlrd |
仅读excle功能 |
elasticsearch |
全文搜索引擎 |
pymysql |
数据库连接库 |
mongoengine/pymongo |
mongodbpython接口 |
matplotlib |
画图 |
numpy/scipy |
科学计算 |
django/tornado/flask |
web框架 |
xmltodict |
xml转dict |
SimpleHTTPServer |
简单的HTTPServer,不适用web框架 |
gevent |
基于协成的Python网络库 |
fabric |
系统管理 |
pandas |
数据处理库 |
scikit-learn |
机器学习库 |
可用dir()来查看有哪些方法
-
partial 把一个函数的某些参数设置为默认值,然后返回这个函数 def test(a):
print(a)
t = functools.partial(a=0)
t() #out: 0
t(1) #out: 1
-
wraps def wrapper(func):
@functools.wraps(func)
def inner(*args,**kwargs):
"""in inner"""
print('---start---')
return func()
return inner
def test():
"""in test"""
print("test")
print(test.__doc__) ### 会打印test的文档说明,而非Inner的
-
hashlib m = hashlib.md5()
m.update(b'test')
m.hexdigest()
collection
- namedtuple
- deque
- Counter
- OrderDict
- defaultDict
os
- os.makedirs(‘dirname1/dirname2‘) 生成多级递归目录
- os.removedirs(‘dirname1‘) 若目录为空则删除,并递归到上一级目录,如上一级为空,也删除
- os.mkdir(‘dirname‘) 创建目录
- os.rmdir(‘dirname‘) 以列表列出指定目录下的所有文件和子目录,包括隐藏文件
- os.remove() 删除一个文件
- os.rename(oldname,newname) 重命名
- os.stat(‘path/filename‘) 获取文件/目录信息
- os.system(‘bash command‘) 运行shell命令并显示结果
- os.popen(‘bash command‘).read() 运行shell命令,获取执行结果
- os.getcwd() 获取当前工作目录
- os.chdir(dirname) 改变当前脚本工作目录=shell下的cd
- os.sep 输出操作系统特定的路径分割符
- os.linesep 输出当前平台所使用的行终止符 win:rn linux:n
- os.pathsep 输出用于分割文件路径的字符串 win-; linux-:
- os.name 输出字符串指示当前使用平台 win-‘nt‘ linux-‘posix‘
- os.path
- os.path.abspath(path) 返回path规范化的绝对路径
- os.path.split(path) 将path分割成目录和文件名,元祖返回
- os.path.dirname(path) 返回path的目录=os.path.split() 第一个元素
- os.path.basename(path) 返回path最后的文件名,如果path以/or结尾,返回空值=os.path.split()第2个元素
- os.path.exists(path) 判断Path是否存在
- os.path.isabs(path) 判断Path是否是绝对路径
- os.path.isfile(path) 判断是否是一个存在的文件
- os.path.isdir(path) 潘丹path是否是一个存在的目录
- os.path.join(path1,[path2,...]) 将多个路径组合后返回
- os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
- os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
- os.path.getsize() 返回大小
sys
- sys.argv 命令行参数list,第一个元素是程序本身
- sys.exit(n) 退出程序,正常退出是exit(0) 错误退出是exit(1)
- sys.version 获取Python解释器的版本信息
- sys.path 返回模块的搜索路径
- sys.platform 返回操作系统平台名称
random
- random.random() 返回随机大于0小于1的小数
- random.uniform(1,3)
- random.Intrandom(1,3)
- random.randrange(1,10,2)
- random.choice() 随机返回一个
- random.shuffle() 打乱顺序
json
参数ensure_ascii = False 是否显示中文
- json.dumps/dump
- json.loads/load
pickle
dump,load 打开文件一定要以二进制打开
re
元字符: /w 字符数字下划线; /d 数字 ;/D非数字;/s任何空字符
- re.findall(r‘‘)/finditer()
参数里加()要取消匹配为(?:)
- re.search() 只找1个
ret = re.search(‘<(?P<tag_name>w+)>w+</(?P=tag_name)>‘,‘<h1>test</h1>‘)
- re.match() 从开始位置匹配
- re.split() 参数加()结果包含
- re.sub()
- re.compile()
time

运算符
- //整除
- list+list 合并字符串,列表,元祖
- list*4 重复字符串,列表,元祖
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|