1、ljust、rjust

"hello".ljust(10,"x")   #将字符串hello做对齐,并且用字符‘x’补到10个字符

#输出为:helloxxxxx

2、repr

def func():
print("hello") repr(func) # 将函数对象转为字符串 # 输出:function func at 0x00000021DC268,如果是print(func)的话自动回调用这个函数。

3、dir(返回对象的属性(成员),函数在python中也是对象,也有属性)def func():    print("hello")

dir(func)  # 返回对象的属性

#输出:['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

import operator
dir(operator)

#['__abs__', '__add__', '__all__', '__and__', '__builtins__', '__cached__', '__concat__', '__contains__', '__delitem__', '__doc__', '__eq__', '__file__', '__floordiv__', '__ge__', '__getitem__', '__gt__', '__iadd__', '__iand__', '__iconcat__', '__ifloordiv__', '__ilshift__', '__imatmul__', '__imod__', '__imul__', '__index__', '__inv__', '__invert__', '__ior__', '__ipow__', '__irshift__', '__isub__', '__itruediv__', '__ixor__', '__le__', '__loader__', '__lshift__', '__lt__', '__matmul__', '__mod__', '__mul__', '__name__', '__ne__', '__neg__', '__not__', '__or__', '__package__', '__pos__', '__pow__', '__rshift__', '__setitem__', '__spec__', '__sub__', '__truediv__', '__xor__', '_abs', 'abs', 'add', 'and_', 'attrgetter', 'concat', 'contains', 'countOf', 'delitem', 'eq', 'floordiv', 'ge', 'getitem', 'gt', 'iadd', 'iand', 'iconcat', 'ifloordiv', 'ilshift', 'imatmul', 'imod', 'imul', 'index', 'indexOf', 'inv', 'invert', 'ior', 'ipow', 'irshift', 'is_', 'is_not', 'isub', 'itemgetter', 'itruediv', 'ixor',

'le', 'length_hint', 'lshift', 'lt', 'matmul', 'methodcaller', 'mod', 'mul', 'ne', 'neg', 'not_', 'or_', 'pos', 'pow', 'rshift', 'setitem', 'sub', 'truediv', 'truth', 'xor']

# 其中__mul__、__add__是实现细节,mul,add是调用了这个函数。

4、functools-->reduce 迭代运算

from functools import reduce

reduce(lambda a,b:a+b, range(10)) # 计算0~9 数据的和
reduce(lambda a,b:a*b, range(1,10)) #计算1*2*3...*9的积 # reduce(function , iterable_obj),iterable_obj的第一个和第二元素先调用function,得到的结果和第三个元素再调用function,依次类推。

5、operator (C++中也有这些函数对象,替换lambda的作用)

from functools import reduce
import operator reduce(add, range(10)) # 计算0~9 数据的和
reduce(mul, range(1,10)) #计算1*2*3...*9的积

6、operator-->itemgetter(获取可迭代对象的部分数据,多个数据时以元组形式返回)

from operator import itemgetter

getter = itemgetter(1)  # 构造一个获取迭代对象下标为1的可调用对象。
l = [1,2,3,4,5,6] getter(l) # 输出2 getter = itemgetter(2,5)
getter(l) # 输出(3,6)
getter(l)[0] # 输出3

7、operator-->attrgetter(获取对象的部分属性值,多用于提取namedtuple中的部分数据,多个数据以元组形式返回)

from collections import namedtuple
from operator import attrgetter
motro_data = [
('Tokyo', 'JP', 36.933, (35.68, 139.69)),
('Delhi NCR', 'IN', 21.935, (28.61, 77.20)),
('Mexico City', 'MX', 20.142, (19.43, -99.13)),
('New York-Newark', 'US', 20.104, (40.80, -74.02)),
('Sao Paulo', 'BR', 19.649, (-23.54, -46.63))
] LatLong = namedtuple('LatLong', 'lat long') # 定义一个namedtuple类型
Metropolis = namedtuple('Metropolis', 'name cc pop coord') # 定义一个namedtuple类型
metro_areas = [Metropolis(name, cc, pop, LatLong(lat, long)) for name, cc, pop, (lat, long) in motro_data] # 列表推导拆包生成列表,列表的元素是namedtuple
name_lat = attrgetter('name', 'coord.lat') # 构造一个attrgetter对象
for city in sorted(metro_areas, key=attrgetter('coord.lat')): # sorted根据coord.lat值排序,返回一个排序后的列表,元素还是namedtuple
print(name_lat(city)) # 根据name_lat提取city中的name和coord.lat属性打印

8、functools-->partial(绑定函数部分参数,构造新的函数,跟C++的bind函数类似,C++,用_1,_2这些常量来确定绑定那些参数,python可以通过位置参数和关键字参数确定绑定那些参数)

import functools

def func(a,b,c):
print(a,b,c) f = functools.patial(func, 'a', c='c') # 为func函数绑定参数,为a绑定位置实参‘a’,为c绑定关键字实参‘c’
f('hello') # 输出:a hello c # 位置实参只能按照顺序绑定,关键字实参可以绑定任意参数。

python好用的函数或对象的更多相关文章

  1. Python学习笔记之—— File(文件) 对象常用函数

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 1.file.close() close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触 ...

  2. 《流畅的Python》第三部分 把函数视作对象 【一等函数】【使用一等函数实现设计模式】【函数装饰器和闭包】

    第三部分 第5章 一等函数 一等对象 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 在Python中,所有函数都是一等对象 函数是对象 函数本身是 func ...

  3. python之attrgetter函数对对象排序

    # 使用attrgetter函数对对象排序 # attrgetter处理对象,itemgetter处理序列 from operator import attrgetter class user(): ...

  4. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  5. python学习之路-day6-面向对象

    一.面向对象学习 特性 class类 一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性.共同的方法. 面向过程编程和面向对象编程: 面向过程编程:使用一系列的指 ...

  6. python中常用的函数与库一

    1, collections.deque 在python里如果我们用列表作为队列使用也是可以的,只是当从队尾删除或者增加元素的时候是很快的,但是从队首删除或者增加元素则要慢得多,这是因为在队首进行操作 ...

  7. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  8. python --- Python中的callable 函数

    python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...

  9. python迭代器与iter()函数实例教程

    python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...

随机推荐

  1. SYCOJ27猴子选大王

    题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然 ...

  2. 05.python解析式与生成器表达式

    解析式和生成器表达式 列表解析式 列表解析式List Comprehension,也叫列表推导式 #生成一个列表,元素0-9,将每个元素加1后的平方值组成新的列表 x = [] for i in ra ...

  3. markdown mermaid状态图

    状态图 状态图是一种用于计算机科学和相关领域描述系统行为的图.状态图要求描述的系统由有限数量的状态组成. 语法: stateDiagram-v2 [*] --> Still Still --&g ...

  4. 《剑指offer》面试题32 - II. 从上到下打印二叉树 II

    问题描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...

  5. 小程序onShareAppMessage有点迷

    小程序遇到的问题 起因 目前项目需求是分享时携带参数去进行裂变,但是在查看微信文档后发现有onShareAppMessage这个页面处理事件可以使用.事件可以使用return一个Object,用于自定 ...

  6. 【刷题-LeetCode】211. Add and Search Word - Data structure design

    Add and Search Word - Data structure design Design a data structure that supports the following two ...

  7. 百度云管家使用socks代理无法上传下载解决办法

    像前几篇随笔描述的那样,笔者在学校里通过shadowsocks使用ipv6访问双栈vps来免费使用外网,但是在设置百度云管家的代理时发现:使用socks代理客户端可以访问文件列表,但是无法上传下载. ...

  8. golang中结构体和结构体指针的内存管理

    p1是结构体,p2是结构体指针. 2. 声明并赋值结构体和结构体指针 package main import "fmt" type Person struct { name str ...

  9. Go 变量及基本数据类型1

    #### Go 变量及基本数据类型(一)今天主要学习一下Go 中的变量及基本数据类型: 如何申明,使用变量,以及基本数据类型的介绍和使用细节; ##### 变量的介绍1. 变量相当于内存中一个数据存储 ...

  10. Ubuntu SVN 搭建

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...