一、input()和raw_input():

input()支持用户输入数字或表达式,按类型存或存表达式的计算结果

raw_input():输入所有内容当成字符串存

二、lambda函数:匿名函数

lambda只是一个表达式,函数体比def简单的多

lambda的主体是一个表达式,而不是一个代码块。

lambda函数拥有自己的名字空间,且不能访问自由参数列表之外全局名字空间里的参数

lambda会返回一个函数对象,但这个对象不会赋值给一个标识符,而def则会把函数对象赋值给一个变量(函数名)

if或for或print等语句不能用于lambda中 lambda函数不能共享给别的程序调用,def定义的函数可以

语法 :

lambda [arg1[,arg2[,arg3...argn]]]:expression

>>> list1=[lambda a:a**3,lambda b:b**2]

>>> print list1

[<function <lambda> at 0x0000000003449A58>, <function <lambda> at 0x0000000003449AC8>]

>>> print list1[0]

<function <lambda> at 0x0000000003449A58>

>>> print list1[1]

<function <lambda> at 0x0000000003449AC8>

>>> g=list1[0]

>>> g(3)

27

>>> h=list1[1]

>>> h(2)

4

>>> h(4)

16

>>>

三、repr函数

用来取得对象的规范字符串表示。

反引号(也称转换符`)可以完成相同的功能。

注意:大多数时候有eval(repr(object))==object 可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。

四、map函数

将每个列表元素或字符串都执行某个函数

map函数的操作方法:

它将每个字符串或者列表元素,应用某个函数方法,结果返回列表。

将函数func作用于这个seq的每个元素上,并得到一个新的seq.

>>> a=[1,2,3,4]

>>> lista=map(str,a)

>>> print lista ['1', '2', '3', '4']

>>>

>>> map(int,"12345")

[1, 2, 3, 4, 5]

>>>

>>> map(lambda x,y:x+y,[2,4,6],[3,2,1])

[5, 6, 7]

>>>

map函数无法处理seq长度不一致、对应位置操作数类型不一致的情况,会报类型错误。

>>> map(lambda x,y:(x**y,x+y),[2,4,6],[3,2,4,5])  #报错

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "<stdin>", line 1, in <lambda>

TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

>>> map(lambda x,y:(x**y,x+y),[2,4,6],[3,2,4])

[(8, 5), (16, 6), (1296, 10)]

>>>

五、filter函数:

filter()函数可以对序列做过滤处理,就是说可以使用一个自定义的函数,过滤一个序列 ,把序列的每一项传到自定义的过滤函数里处理,并将返回结果做过滤。最终一次性返回过滤后的 结果。

filter()函数有两个参数:

第一个是:自定义函数名,必须的

第二个是:需要过滤的序列,也是必须的

>>> def getsomenum(num):

...     if num>5 and num<10:

...         return num

...

>>> seq=[12,50,6,5,1,3,11,7,9,10]

>>> filter(getsomenum,seq)

[6, 7, 9]

>>>

六、reduce内建函数

reduce内建函数是一个二元操作函数,用来将一个集合(链表,元组等)中的所有数据进行下列 操作:

用传给reduce中的函数func()(必须是一个二元操作函数)先对集合的第1,2个数据进行操作 ,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。(是一个累积的结果)

>>> reduce(lambda x,y:x+y,[1,2,3,4,5])

15

>>>

>>> reduce(lambda x,y:x+y,[1,2,3,4,5],0)  #第一次把0给x,列表给y

15

>>>

>>> def fn(x,y):

...     return x*10+y

...

>>> def char2num(s):

...     return{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[s]

...

>>> reduce(fn,map(char2num,"13579"))

13579

>>>

七、exec函数:

有时候可能会需要动态地创建python代码,然后将其他为语句或作为表达式去执行。

exec语句用来执行存储在字符串或文本中有效的python语句。

>>> exec("print 'hello python'")

hello python

>>>

>>> def printsrt():

...print "hello word"

... >>>

>>> exec("printsrt()")

hello word

>>>

八、eval函数

eval()语句用来计算存储在字符串中的有效Python表达式,并返回计算结果

>>> s="3*4+18"

>>> eval(s)

30

>>>

>>> def printStr():

...     print "hello word"

...     return 1

...

>>> print eval("printStr()")

hello word

1

>>>

>>> a="[[1,2],[3,4],[5,6]]"

>>> print eval(a)

[[1, 2], [3, 4], [5, 6]]

>>> b="{1:'xx',2:'yy'}"

>>> print eval(b)

{1: 'xx', 2: 'yy'}

>>> c="(1,2,3,4)"

>>> print eval(c)

(1, 2, 3, 4)

>>>

>>> list1=[1,2,3,4]

>>> type(`list1`)

<type 'str'>

>>> type(eval(`list1`))

<type 'list'>

>>> print eval(`list1`)

[1, 2, 3, 4]

>>>

九、exec与eval的区别:

exec()和eval()都可以动态的执行存储在字符串或文本中的有效python表达式;

区别:

exec()执行python语句没有返回值;

而eval()有返回值

十、range和xrange的区别:

rang会直接生成一个list对象;

xrange不会直接生成一个list,而是每次调用返回其中的一个值【xrange返回的是一个生成器】

>>> a=range(1,100)

>>> type(a)

<type 'list'>

>>> b=xrange(1,100)

>>> type(b)

<type 'xrange'>

>>>

函数(二):input、raw_input、lambda、repr、map、filter、reduce、eval、exec、range、xrange的更多相关文章

  1. python lambda表达式&map/filter/reduce

    习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 1 2 3 4 5 6 7 8 # 普通条件语句 if 1 == 1:     name = 'wupeiqi' else ...

  2. python 内置函数 map filter reduce lambda

    map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6, ...

  3. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)

    1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...

  4. lambda、map、reduce、filter函数讲解

    # coding:utf-8 """ 几个特殊的函数: lambda lambda后面直接跟变量 变量后面是冒号 冒号后面是表达式,表达式计算结果就是本函数的返回值 作用 ...

  5. python常用函数进阶(2)之map,filter,reduce,zip

    Basic Python : Map, Filter, Reduce, Zip 1-Map() 1.1 Syntax # fun : a function applying to the iterab ...

  6. 如何在python3.3用 map filter reduce

    在3.3里,如果直接使用map(), filter(), reduce(), 会出现 >>> def f(x): return x % 2 != 0 and x % 3 != 0  ...

  7. 数组的高阶方法map filter reduce的使用

    数组中常用的高阶方法: foreach    map    filter    reduce    some    every 在这些方法中都是对数组中每一个元素进行遍历操作,只有foreach是没有 ...

  8. Swift map filter reduce 使用指南

    转载:https://useyourloaf.com/blog/swift-guide-to-map-filter-reduce/ Using map, filter or reduce to ope ...

  9. python几个特别函数map filter reduce lambda

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g = l ...

  10. lambda表达式&map&filter&yield

    一.先来看下lambda表达式 1.lambda表达式其实很简单,他是简单的函数的变种,只有三部分组成,之前老师没有讲清楚,今天看书,终于明白了,写个博客记录下 lambda关键字+参数+返回值,参数 ...

随机推荐

  1. 彻底明确怎样设置minSdkVersion和targetSdkVersion

    minSdkVersion和targetSdkVersion相信非常多人都不太理解.我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊.直到我在stackOverFlow看到Android M ...

  2. bzoj4520【CQOI2016】K远点对

    题解: kd-tree裸题 对每个点维护最近的k个开个堆维护一下

  3. Introduction to boundary integral equations in BEM

    Boundary element method (BEM) is an effective tool compared to finite element method (FEM) for resol ...

  4. Nginx代理实现内网主机访问公网服务

    通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...

  5. C# 之 GUID格式化

    Guid的带参数的ToString()方法来实现格式化,如下: //// 摘要: //     根据所提供的格式说明符,返回此 System.Guid 实例值的字符串表示形式. //// 参数: // ...

  6. drone的pipeline原理与代码分析

    最近的一个项目,需要实现一个工作任务流(task pipeline),基于之前CICD的经验,jenkins pipeline和drone的pipeline进入候选. drone是基于go的cicd解 ...

  7. BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA

    原文链接http://www.cnblogs.com/zhouzhendong/p/9016336.html 题目传送门 - BZOJ4319 题意 给出一个$1,2,\cdots,n$的排列,第$i ...

  8. 在controller中将timestamp类型的数据通过toString()方法变成字符串

    然后在miniui里面将dateFormat="yyyy-MM-dd",变成想要的格式.

  9. css3 webkit-box的用法

    webkit-box 1.之前要实现横列的web布局,通常就是float或者display:inline-block; 但是都不能做到真正的流体布局.至少width要自己去算百分比.2.flexibl ...

  10. 001.Amoeba读写分离部署

    一 Amoeba简介 Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba forMysql软件.这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQ ...