# -*- 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. Unity 3D 动画帧事件

    前几天在项目开发中碰到一个这样的需求,RPG游戏中,特效和动画播放不同步的.假如主角在攻击NPC时,先实例化特效,后播放动画.动画毕竟是有一个时间长度的.等到动画播放攻击挥刀的那一瞬间时,特效可能早就 ...

  2. javasscript学习笔记 之 数组学习二 数组的所有方法

    1.push() 和 pop()  栈的方法 后进先出 push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度. push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返 ...

  3. python进阶之路4.1---生成器与迭代器

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  4. CodeSmith使用总结--创建一个基础模板

    问:为什么要用CodeSmith? 答曰:因为我懒的写. Codesmith是一款非常不错的懒人工具,我也经常会用到,因为它在“重复代码”方面能够节省我们很多时间,并且解除了我们重复繁琐并且乏味的“码 ...

  5. UVA11388 GCD LCM1 2 -1

    题目: 给你两个数G和L,求a和b,他们的最大公约数为G和最小公倍数为L,输出a最小时的a和b.如果不存在在输出-1. Sample Input   2 1 2 3 4 Output for Samp ...

  6. TravelCMS旅游网站系统诞生记

    本人就是一纯粹码农,没什么学历,更没什么技术,但是自认为学习能力还不错,近期有一个旅游网站系统项目正在进行中,在此以贴图记录这个项目的诞生过程,本是一个定制系统,但是不想把系统做死,以通用产品的标准来 ...

  7. 关于sql2005 与 myeclipse进行连接出现的小问题

    C盘目录下没有jdbc这个文件夹,所以从网上下一个 这个是2008连接jdbc用的 正常解压第一个到相应的目录 主要是注意一个叫tcp/ip的协议,米有找到64位的 点击这里的tcp ip就哦了但是他 ...

  8. cocos2dx 音效 粒子 数据存储

    1.音效 引入头文件 #include "simpleAudioEngine.h" 命名空间 using namespace CocosDenshion; //创建一个背景 Siz ...

  9. web 安全 初探 (正在更新)

    1.web应用程序所采用的防卫机制的几个核心构成:1.处理用户对应用程序的数据和功能的访问,以防止用户未经授权访问.2.处理用户的输入,以防止恶意的输入导致未预期的行为.3.处理攻击,以确保应用程序在 ...

  10. hdu 油菜花王国

    Problem Description 程序设计竞赛即将到来,作为学校ACM集训队主力,小明训练一直很努力.今天天气不错,教练也心情大好,破例给各位队员放假一天,小明就骑着自己的小电驴到郊外踏青去了. ...