iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python内置工具(tools)总结
  • 434
分享到

Python内置工具(tools)总结

工具Pythontools 2023-01-31 05:01:01 434人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python提供了以下几个内置tools模块,简化开发 operator collections itertools functools 除此之外,还有一些其他工具,比如mimetools、unittest等,上述四个tools作

python提供了以下几个内置tools模块,简化开发

operator collections itertools functools

除此之外,还有一些其他工具,比如mimetools、unittest等,上述四个tools作用于内建类型和函数、类等,比较通用,也较为常用。
-operator : 内置的操作符模块
-collections : 简化容器类型的一些操作和使用
-itertools : 可迭代类型工具
-functools : 函数工具,尤其是装饰器

operator

operator提供了一个函数与符号的相互转换,方便我们在编程时选择:
examples
(1)符号转函数:
比如在一些需要某些符号功能,却需要提供该符号的函数表示时,尤其是在map reduce filter等的key 和cmp里面

from operator import add
print reduce(add,range(10))

(2)函数转符号:
这个例子有点特别,但是在类定义中常见,add->__add__这种方式差别跟Python的变量有关。
附:python变量命名方式(来自网络):
python变量命名规范
下面是python符号函数映射表

class A():
    def __init__(self,num):
        self.num=num
    def __add__(self,other):
        return self.num+other.num
Operation Syntax Function
Addition a + b add(a, b)
Concatenation seq1 + seq2 concat(seq1, seq2)
Containment Test obj in seq contains(seq, obj)
Division a / b div(a, b) (without future.division)
Division a / b truediv(a, b) (with future.division)
Division a // b floordiv(a, b)
Bitwise And a & b and_(a, b)
Bitwise Exclusive Or a ^ b xor(a, b)
Bitwise Inversion ~ a invert(a)
Bitwise Or a | b or_(a, b)
Exponentiation a ** b pow(a, b)
Identity a is b is_(a, b)
Identity a is not b is_not(a, b)
Indexed Assignment obj[k] = v setitem(obj, k, v)
Indexed Deletion del obj[k] delitem(obj, k)
Indexing obj[k] getitem(obj, k)
Left Shift a << b lshift(a, b)
Modulo a % b mod(a, b)
Multiplication a * b mul(a, b)
Negation (Arithmetic) - a neg(a)
Negation (Logical) not a not_(a)
Positive + a pos(a)
Right Shift a >> b rshift(a, b)
Sequence Repetition seq * i repeat(seq, i)
Slice Assignment seq[i:j] = values setitem(seq, slice(i, j), values)
Slice Deletion del seq[i:j] delitem(seq, slice(i, j))
Slicing seq[i:j] getitem(seq, slice(i, j))
String FORMatting s % obj mod(s, obj)
Subtraction a - b sub(a, b)
Truth Test obj truth(obj)
Ordering a < b lt(a, b)
Ordering a <= b le(a, b)
Equality a == b eq(a, b)
Difference a != b ne(a, b)
Ordering a >= b ge(a, b)
Ordering a > b gt(a, b)

关于细节内容可以参考
python library - operator

collections

主要是为容器类型: list, set, and tuple提供了一些便利
有以下几个类型

type describe
namedtuple factory function for creating tuple subclasses with named fields
deque list-like container with fast appends and pops on either end
Counter dict subclass for counting hashable objects
OrderedDict dict subclass that remembers the order entries were added
defaultdict dict subclass that calls a factory function to supply missing values

namedtuple
主要用于对tuple里面的分量进行命名,生成一个tuple的子类,这个子类继承了原来的tuple类,有相同的属性方法。

from collections import namedtuple
mytuple=namedtuple('mytuple',('name','age')])
first=mytuple('tom',19)
print first.name,first.age

这种namedtuple可以用来对获取的的数据库数据进行命名,我们从数据库获取的每条记录都是用一个tuple,不方便我们取属性,如果换成我们自定义的namedtuple类型,更便于操作和理解。
deque
这是一种队列类型,有队列类型的相关操作,可以弥补list这种广义表类型的某些不足,比如在前面插入较慢(这里你可以查找一些python的资料,对于python的list前段吧插入时会整个后移list,效率较低)
关于这种类型相应的方法支持可以参考后面附上的python library链接
Counter
可以理解为一个计数字典

from collections import *
d = Counter("hello world hello BJ".split())
print d
# OUT : Counter({'hello': 2, 'world': 1, 'BJ': 1})
print d['SH']
# OUT : 0

返回一个字典的子类,键值为可迭代对象里的对象和相应数量。
对于这个字典里没有的键,返回0,类似于普通字典的 d.get(‘SH’,0)
关于这种类型的其他方法也可参考官方文档,讲得很清楚。
OrderedDict
有序字典,字典中的键按序排放,加入了一些与顺序有关的操作,比如popitem()等
defaultdict
对于一个defaultdict类型,当你去访问它的键值时,如果没有这个键,它会调用一个可调用对象,将返回值赋给这个键。

call1 = int
call2 = list
call3 = lambda :4
from colletions import defaultdict
mydict1 = defaultdict(call1)
mydict2 = defaultdict(call2)
mydict3 = defaultdict(call3) 
print mydict1['not'],mydict2['not'],mydict3['not']
# OUT : 0 [] 4
# 执行过程是,去取这个键的值,如果没有,调用call1(None),...
# 如果你想知道我说的对不对,可以把call3 = lambda x:4 ,试试,看他的报错就知道了。

colletions后面还列出了一些类,用于继承和isinstance判断
本节参考:
python library - collections

itertools

可以参考:
python library - itertools
前面的都比较好理解
主要想解释下tee,感觉tee像是对原迭代对象的n份deepcopy,不知道他说的那个split是不是这个意思
Combinatoric generators部分:
对于s=’ABCD’

Iterator Arguments Results
product() p, q, … [repeat=1] cartesian product, equivalent to a nested for-loop
permutations() p[, r] r-length tuples, all possible orderings, no repeated elements
combinations() p, r r-length tuples, in sorted order, no repeated elements
combinations_with_replacement() p, r r-length tuples, in sorted order, with repeated elements
product(‘ABCD’, repeat=2) 类似Ann AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
permutations(‘ABCD’, 2) 类似A2n AB AC AD BA BC BD CA CB CD DA DB DC
combinations(‘ABCD’, 2) 类似C2n AB AC AD BC BD CD
combinations_with_replacement(‘ABCD’, 2) C2n+AA…DD AA AB AC AD BB BC BD CC CD DD

functools

这里面前面几个工具是用来衔接的old-new,这点感觉跟那个__future__模块很像
后面的跟函数闭包里面的装饰器有关,一共有三个函数(类)
update_wrapper wraps partial
wraps是简化了的update_wrapper
关于这三个:
update_wrapper:Update a wrapper function to look like the wrapped function.
wraps:This is a convenience function for invoking update_wrapper() as a function decorator when defining a wrapper function.
partial是一个类,有多个属性。
前面俩个可以参考官方例子,partial可以用于固定函数参数

from functools import partial
def basefunc(a,b):
    return a+b
newfunc = partial(basefunc,b=1)
print newfunc(5)
# OUT : 6
#这里要考虑函数默认参数的问题,如果newfunc = partial(basefunc,a=1),print 时会报错,必须print newfunc(b=5),关于函数默认参数赋值问题,基本上原则是默认赋值的放后面,否则要在调用函数时使用形参

--结束END--

本文标题: Python内置工具(tools)总结

本文链接: https://www.lsjlt.com/news/188888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python内置工具(tools)总结
    Python提供了以下几个内置tools模块,简化开发 operator collections itertools functools 除此之外,还有一些其他工具,比如mimetools、unittest等,上述四个tools作...
    99+
    2023-01-31
    工具 Python tools
  • Python的内置函数总结
    这篇文章主要介绍“Python的内置函数总结”,在日常操作中,相信很多人在Python的内置函数总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的内置函数总结”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
  • stackoverflow常用工具库总结
    目录简介API概览安装和使用简介 每个前端开发人员都有自己的 utils 库, 这些方法我们高频使用,但又要在每个项目中重写。 今天我要给大家介绍一款超小且实用的函数工具库:&nb...
    99+
    2023-03-06
    stackoverflow工具库 stackoverflow常用工具
  • Java常用工具类总结
    目录一、线程协作、控制并发流程的工具类二、CountDownLatch倒计时门闩三、Semaphore信号量四、Condition接口(又称条件对象)五、CyclicBarrier和...
    99+
    2024-04-02
  • 常用的Python代码调试工具总结
    前言 我自己常用的简单Python代码调试工具是IDLE和Sublime3,IDLE很少使用了,基本上用Sublime3稍微多一些,Sublime3因为简单方便更直观。(VSCode...
    99+
    2024-04-02
  • 七个非常实用的Python工具包总结
    目录一、Faker二、Pywebio三、Airflow四、Loguru五、Pydash六、Weights & Biases七、PyCaretSummary一、Faker 生产...
    99+
    2024-04-02
  • App与小程序工具总结
    文章目录 前言Burpsuite抓包问题LPosed+JustTrustMe 绕过 SSL Pining小程序的反编译APP脱壳,反射大师、frida反射大师Frida 总结 前言 ...
    99+
    2023-09-06
    小程序 web安全 web app
  • Python学习之内置函数总结
    目录常用函数abs 函数 演示all 函数 演示enumerate 函数 演示input 函数 演示isinstance 函数 演示vars 函数 演示hasattr 函数 演示se...
    99+
    2024-04-02
  • 【python】工作方向总结
    学会Python可以有以下几类工作方向: 1、Python开发工程师 :一般需要精通Python编程语言,有Django等框架的使用经验,实习无要求。2、Python高级工程师 : 北上广深的话,薪金在1万以上,需要精通Linux/Un...
    99+
    2023-01-31
    方向 工作 python
  • Python数据挖掘中常用的五种AutoEDA 工具总结
    目录1、Pandas Profiling2、AutoViz3、Dataprep4、SweetViz5、D-Tale技术交流我们能否使用一些自动化工具代替人来完成数据分析的过程呢,现有...
    99+
    2024-04-02
  • Python可视化最频繁使用的10大工具总结
    目录MatplotlibSeabornPlotlyBokehAltairggplotHoloviewsPlotnineWordcloudNetworkx总结今天介绍Python当中十...
    99+
    2023-03-24
    python可视化工具 python 可视化
  • 总结一般用哪些工具开发Node.js
    Node.js是一个开放源代码、跨平台的后端JavaScript运行环境。它使用Chrome V8引擎为JavaScript代码提供编译和执行能力,来构建快速轻量级的网络应用程序。Node.js在Web开发中已经变得不可或缺。在开发中,要选...
    99+
    2023-05-14
  • Python开发工具Pycharm的安装以及使用步骤总结
    前言 PyCharm是一种Python 的IDE工具(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,内部集成的功能如下: Projec...
    99+
    2024-04-02
  • python3常用内置函数总结
    #(1)作用域print(globals()) #全局作用域,显示出全局所有函数和变量名print(locals()) #本地作用域,显示出当前所处作用域的函数和变量名 #(2)输入与输出a = input('请输入内容:') #...
    99+
    2023-01-31
    函数 常用
  • Vue 内置指令梳理总结
    目录指令总结v-textv-htmlv-cloakv-oncev-pre指令总结 v-bind:单向绑定解析表达式,可简写为 :xxxv-model:双向数据绑定v-for...
    99+
    2024-04-02
  • Python 常用内置模块超详细梳理总结
    目录time模块time.sleep()time.time()time.localtime()time.strftime()datetime()random模块random.rand...
    99+
    2024-04-02
  • Java常用时间工具类总结(珍藏版)
    目录常量介绍相关方法工具类源码肝了两天,重新整理了下时间工具类,以后我就以该时间工具类进行项目开发了,后会不定期更新功能,也欢迎留言需求,让工具类不断的完善。 常量介绍 相关方法 ...
    99+
    2024-04-02
  • Vue项目中常用的工具函数总结
    目录前言一、自定义聚焦指令1、方式一2、方式二3、方式三二、输入框防抖1、需求2、思路3、代码实现三、关键字高亮1、需求2、思路3、代码演示四、格式化Excel表格中存储的时间1、需...
    99+
    2024-04-02
  • python的内置集成开发工具有哪些
    Python的内置集成开发工具包括以下几个:1. IDLE(Python自带的集成开发环境):IDLE是Python官方提供的一个基...
    99+
    2023-09-28
    python
  • SpringBoot 内置工具类的使用
    目录断言对象、数组、集合 ObjectUtilsStringUtilsCollectionUtils文件、资源、IO 流 FileCopyUtilsResourceUtilsStre...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作