# -*- 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模块的更多相关文章

  1. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  2. Python中使用operator模块实现对象的多级排序

    Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...

  3. Python标准库笔记(11) — Operator模块

    Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此o ...

  4. python标准库介绍——8 operator 模块详解

    ==operator 模块== ``operator`` 模块为 Python 提供了一个 "功能性" 的标准操作符接口. 当使用 ``map`` 以及 ``filter`` 一类 ...

  5. 【Python】operator 模块简单介绍

    简单介绍几个常用的函数,其他的请参考文档. operator.concat(a, b) **operator.__concat__(a, b)** 对于 a.b序列,返回 a + b(列表合并) -- ...

  6. operator模块常见方法介绍

    operator.concat(a, b) 对于 a.b序列,返回 a + b(列表合并) --------------------------------- operator.countOf(a, ...

  7. python之operator模块

    python3中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块. 在没有导入模块情况下,会出现 提示找不到cmp函数了,那么在python3中该如何使用这个函数呢? ...

  8. Python3 operator模块关联代替Python2 cmp() 函数

    Python2 cmp() 函数 描述 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1. Python ...

  9. operator模块和functools模块

    operator模块 在函数式编程中,经常需要把算术运算符当作函数使用.例如,不使用 递归计算阶乘.求和可以使用 sum 函数,但是求积则没有这样的函数. 我们可以使用 reduce 函数(5.2.1 ...

随机推荐

  1. (转)iOS7界面设计规范(7) - UI基础 - 交互性与反馈

    现在只是周日下午,可怎样都觉得整个周末就这样即将过去了,不免沮丧.看了好多集小丸子了,又不免觉得现在其实是在放暑假,可以一天一天的窝在家里做任何事,任何事.再上一篇iOS7设计规范,然后本周末就到这里 ...

  2. iphone开发之适配iphone5

    iphone5出来了,从不用适配的我们也要像android一样适配不同分辨率的屏幕了.   公司产品新版本需要适配iphone5,经过一番折腾算是搞定了.下面分享给大家:   iphone5的屏幕分辨 ...

  3. Eclipse+Java+OpenCV246环境搭建和代码测试

    1.首先下载OpenCV2.4.6,下载的时候,选择windows版的.然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\buil ...

  4. 利用JS实现简单的瀑布流效果

    哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了 ...

  5. 普通用户登录PLSQL后提示空白OK对话框错误

    问题描述: 1.普通域账号登录域成员服务器后,打开PLSQL正常,输入用户名密码登录后提示一个空白的OK对话框,点确定后又返回到输入用户密码界面. 2.在CMD窗口下调用SQLPLUS登录数据库时报如 ...

  6. docker 1.12.3版本搭建私有仓库,上传镜像报错:server gave HTTP response to HTTPS client”

    系统环境:centos7 docker版本: 1.12.3(注意版本,可能存在不同版本设置不同的情况) docker registry版本:2.4.1 问题: 成功安装docker registry, ...

  7. XML基本知识

    一.xml简介 1.xml(可扩展标记语言),是一种标记语言,类似于html,其作用主要是传输数据,并非显示数据! 2.xml标签没有被预定义需要用户自行定义. 3.xml由w3c组织发布,遵循200 ...

  8. UIScrollView的属性

    属性 作用 CGPoint contentOffSet 监控目前滚动的位置 CGSize contentSize 滚动范围的大小 UIEdgeInsets contentInset 视图在scroll ...

  9. gitolite随记

    1.git clone源码 git clone git://github.com/sitaramc/gitolite 2.安装 gitolite/install -ln 3.建立git仓库 gitol ...

  10. Qt将表格table保存为excel(odbc方式)

    首先是保存excel的方法,可参照: http://dzmlmszp.blog.163.com/blog/static/179271962014819111812531/ ok,进入正题. 现在我有一 ...