operator模块
# -*- coding: utf-8 -*-
# ====================
#File: python
#Author: python
#Date: 2014
#====================
__author__ = 'Administrator'
#operator模块
#作用:内置操作符函数接口
#版本:1.4加入
#它提供了一些对应算术运算和内置操作函数的方法
#逻辑操作
#一些函数可以用来确定一个值的相应Boolean值,将其取反来创建相反Boolean值 ,以及比较对象查看它们是否相等
from operator import *
a=1
b=-5
print a
print b
print not_(a)
print truth(a)
print is_(a,b)
print is_not(a,b)
"""
not_()后面带个下划线,因为not是个关键字,truth()会应用if语句中测试一个表达式时所用同样的逻辑,is_(),因为is是关键字,is_not()相反
"""
#比较操作符
#所有富比较操作都支持
for func in (lt,le,eq,ne,ge,gt):
print '%s(a,b):'%func.__name__,func(a,b)
"""
lt<
le<=
eq==
ne>=
ge>
"""
#算术运算
from operator import *
a=-1
b=5.
c=2
d=6
print a,b,c,d
print abs(a),neg(a),neg(b),pos(a),pos(b)
#返回的绝对值obj
#返回相反的值(-obj)
#返回正面的(+ obj)值
print add(a,b)#相加
print div(a,b)#经典除
print floordiv(a,b)#浮点除
print mod(a,b)#a%b
print mul(a,b)#a*b
print pow(a,b)#a**b
print sub(a,b)#a-b
print truediv(a,b)#真正的除
#python中有2个不同除法的操作符:flordiv()在3.0之前实现整数除法和truediv()浮点除法
print add(1,2)
print 'is_'
print not_(a)
print is_not(a,b)
print invert(a)#~ obj
print lshift(c,d)#左移
print rshift(c,d)#右移
print xor(c,d)#返回的按位异或一个和b
#序列操作符
#4组:建立序列,搜索元素,访问内容,从序列中删除元素
a1=[1,2,3]
d1=['a','b','c']
print a1
print d1
print coerce(a1,d1)#合并成一个元组
print repeat(a1,3)#重复次数
print contains(d1,'b')#返回的结果测试b 在 一个
print countOf(d1,'d')#出现的次数b在一个
print indexOf(a1,1)#返回索引的第一个出现的b在一个
print getitem(d1,1)#返回值的一个在指数b
print getslice(a1,1,3)#返回的一个从指数b索引c-1
setitem(d1,1,'d')#设定的值一个在指数b来c
setslice(a1,1,3,[4,5])#设置片一个从指数b索引c-1序列v
delitem(d1,1)#删除的值一个在指数b
#原地操作符(如+=)
#iconcat(a,b)相当于一个 + = b为一个和b序列
#属性和元素获取方法(重点)
#获取方法是运行时构造的一些可架设对象,用来获取对象的属性或者序列内容,获取方法在处理迭代器或者生成器序列特别有用
#例子
class Ojb(object):
def __init__(self,arg):
super(Ojb,self).__init__()
self.arg=arg
def __repr__(self):
return '%s'%(self.arg)
l=[Ojb(i)for i in xrange(5)]
print l
g=attrgetter('arg')
valkes=[g(i)for i in l]
print valkes
print sorted(l,key=g)
#属性获取方法工作类似于lambda x,n='attrname':getattr(x,n)
#元素获取方法工作类似于lambda x,y=5:x[y]
l=[dict(val=-1*i)for i in xrange(4)]
print l
g=itemgetter('val')#获取返回一个可调用对象项从其操作数使用 操作数的__getitem__()方法。 如果指定了多个项目, 返回一个元组查找的值。
valkes=[g(i)for i in l]
print valkes
#除了以上序列外,还支持映射方式
#更多operator模块内容,请看官方文档
#https://docs.python.org/2.7/library/operator.html?highlight=operator#operator
operator模块的更多相关文章
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- Python中使用operator模块实现对象的多级排序
Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...
- Python标准库笔记(11) — Operator模块
Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此o ...
- python标准库介绍——8 operator 模块详解
==operator 模块== ``operator`` 模块为 Python 提供了一个 "功能性" 的标准操作符接口. 当使用 ``map`` 以及 ``filter`` 一类 ...
- 【Python】operator 模块简单介绍
简单介绍几个常用的函数,其他的请参考文档. operator.concat(a, b) **operator.__concat__(a, b)** 对于 a.b序列,返回 a + b(列表合并) -- ...
- operator模块常见方法介绍
operator.concat(a, b) 对于 a.b序列,返回 a + b(列表合并) --------------------------------- operator.countOf(a, ...
- python之operator模块
python3中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块. 在没有导入模块情况下,会出现 提示找不到cmp函数了,那么在python3中该如何使用这个函数呢? ...
- Python3 operator模块关联代替Python2 cmp() 函数
Python2 cmp() 函数 描述 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1. Python ...
- operator模块和functools模块
operator模块 在函数式编程中,经常需要把算术运算符当作函数使用.例如,不使用 递归计算阶乘.求和可以使用 sum 函数,但是求积则没有这样的函数. 我们可以使用 reduce 函数(5.2.1 ...
随机推荐
- (转)iOS7界面设计规范(7) - UI基础 - 交互性与反馈
现在只是周日下午,可怎样都觉得整个周末就这样即将过去了,不免沮丧.看了好多集小丸子了,又不免觉得现在其实是在放暑假,可以一天一天的窝在家里做任何事,任何事.再上一篇iOS7设计规范,然后本周末就到这里 ...
- iphone开发之适配iphone5
iphone5出来了,从不用适配的我们也要像android一样适配不同分辨率的屏幕了. 公司产品新版本需要适配iphone5,经过一番折腾算是搞定了.下面分享给大家: iphone5的屏幕分辨 ...
- Eclipse+Java+OpenCV246环境搭建和代码测试
1.首先下载OpenCV2.4.6,下载的时候,选择windows版的.然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\buil ...
- 利用JS实现简单的瀑布流效果
哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了 ...
- 普通用户登录PLSQL后提示空白OK对话框错误
问题描述: 1.普通域账号登录域成员服务器后,打开PLSQL正常,输入用户名密码登录后提示一个空白的OK对话框,点确定后又返回到输入用户密码界面. 2.在CMD窗口下调用SQLPLUS登录数据库时报如 ...
- docker 1.12.3版本搭建私有仓库,上传镜像报错:server gave HTTP response to HTTPS client”
系统环境:centos7 docker版本: 1.12.3(注意版本,可能存在不同版本设置不同的情况) docker registry版本:2.4.1 问题: 成功安装docker registry, ...
- XML基本知识
一.xml简介 1.xml(可扩展标记语言),是一种标记语言,类似于html,其作用主要是传输数据,并非显示数据! 2.xml标签没有被预定义需要用户自行定义. 3.xml由w3c组织发布,遵循200 ...
- UIScrollView的属性
属性 作用 CGPoint contentOffSet 监控目前滚动的位置 CGSize contentSize 滚动范围的大小 UIEdgeInsets contentInset 视图在scroll ...
- gitolite随记
1.git clone源码 git clone git://github.com/sitaramc/gitolite 2.安装 gitolite/install -ln 3.建立git仓库 gitol ...
- Qt将表格table保存为excel(odbc方式)
首先是保存excel的方法,可参照: http://dzmlmszp.blog.163.com/blog/static/179271962014819111812531/ ok,进入正题. 现在我有一 ...