`
zhoujun
  • 浏览: 17073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Python 一些特性总结

阅读更多
Python特殊运用

1、yield

(1) 创建一个生成器函数
def test_yield():
    yield 1
    yield 2
    yield 3

(2)使用next()方法从这个对象中获取中间值
>t = test_yield()
>t.next()
>1
>t.next()
>2
>t.next()
>3
>t.next()
>StopIteration

当生成器没有返回值返回时,则抛出StopIteration异常
(3)迭代
>for item in test_yield():
>    print item
>1
>2
>3

2、with
它在Python 2.6 中正式启用.(Python2.5 尝试性
的引入了with, 并对使用with 作为标识符的应用程序发出这样的警告 - 在Python 2.6 中,with
将会成为关键字. 如果你想在Python 2.5 使用 with 语句, 你必须用from __future__ import
with_statement 来导入它.)

类似try-except-finally , with 语句也是用来简化代码的,这与用try-except 和try-finally
所想达到的目的前后呼应.try-except 和try-finally 的一种特定的配合用法是保证共享的资源的
唯一分配,并在任务结束的时候释放它。然而,with 语句的目的在于从流程图中把 try,except 和

finally 关键字和资源分配释放相关代码统统去掉, 而不是像 try-except-finally 那样仅仅简化代

码使之易用
声明:
with context_expr [as var]
    with_suite

例如:
>with open('hello.txt','r') as f:
>    for line in f:
>        print line




3、 lambda
声明:lambda [arg1[, arg2, ... argN]]: expression
用合适的表达式调用一个lambda 生成一个可以像其他函数一样使用的函数对象。它们可被传入
给其他函数,用额外的引用别名化,作为容器对象以及作为可调用的对象被调用(如果需要的话


可以带参数)。当被调用的时候,如过给定相同的参数的话,这些对象会生成一个和相同表达式

等价
的结果。它们和那些返回等价表达式计算值相同的函数是不能区分的。
> a = lambda x, y = 2: x + y
> a(1)
3
>a(1,5)
>6

lambda 表达式运作起来就像一个函数,当被调用时,创建一个框架对象。
也可以直接调用lambda
>(lambda x : x *2)(3)

6
lambda与函数的等价关系
def add(x,y):return x + y == lambda x,y: x+y


4、map()、zip()、filter()、reduce()
a、map()
声明:map(func,seq[,seq,...]) ->
func:为自定义函数,该函数作用于参数seq,如果func值为None,则map()返回
seq组成的tuple,list
(1)对tuple解包
>tuple = (('apple','banana'),('red','blue'),('a',),('b',))
>i = 0
>for a in map(None,tuple):
>    print "tuple[%d]:"%i, "",
>    for x in a:
>        print x, "",
>    print
>    i += 1
tuple[0]: apple banana
tuple[1]: red blue
tuple[2]: a
tuple[3]: b


(2)对list解包
> list = [1,2,3,4]
> for a in map(None,list):
>      print a
1
2
3
4


>def add(x):
>    return x + 2
>for a in map(add,[1,2,3,4]):
>    print a
3
4
5
6


>def add(x,y):
>    return x + y
>for a in map(add,[1,2,3],[3,2,1])
4
4
4


(3)使用lambda
>map(lambda x:x*2,[1,2,3,4])
[2,4,6,8]
>map(lambda x,y:x*y,[1,2,3],[3,2,1])
[3,4,3]

b、zip()
声明:zip([iter,...])
接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返

回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最

短的对象相同。利用*号操作符,可以将list unzip(解压)
(1)
>a = [1,2]
>b = [3,4]
>zip(a,b)
[(1,3),(2,4)]
>zip(*zip(a,b))
[(1,2),(3,4)]



c、filter()
声明:filter(func, seq)
filter 函数为已知的序列的每个元素调用给定布尔函数。每个filter 返回的非零(true)值元素添

加到一个列表中。返回的对象是一个从原
始队列中“过滤后”的队列
>list = [1,2,3,4]
>f = filter(lambda x :x > 2, list)
>print f
[3,4]

>b = filter(None, list)
>[1,2,3,4]


d、reduce()
声明:reduce(func,seq[,init])
将二元函数作用于seq 序列的元素,每次携带一对(先前的结果
以及下一个序列元素),连续的将现有的结果和下雨给值作用在获
得的随后的结果上,最后减少我们的序列为一个单一的返回值;如
果初始值init 给定,第一个比较会是init 和第一个序列元素而不
是序列的头两个元素
reduce(func, [1, 2, 3]) = func(func(1, 2), 3)
>reduce(lambda x,y:x*y,[1,2,3]) #((1*2)*3)
>6

>reduce(lambda x,y:x*y, [1,2,3], 10) #((1*2)*3)*10
>60

分享到:
评论

相关推荐

    列表特性.py(Python之列表特性)

    根据自学总结的Python入门经验(列表特性),方便刚入门Python的同学加深理解列表的基础。

    python基础知识总结

    我对 python的起源、python的特性、标识符的设置、数据类型、数据类型转换、运算符表达式、控制语句、列表、列表的方法python擦汗能够用的一些内置函数做了一些总结,供大家学习。

    Python语言特性、网络、数据库、操作系统、算法知识点总结。.zip

    基于python的系统开发 应用机器学习、深度学习等技术 源代码 供参考 基于python的系统开发 应用机器学习、深度学习等技术 源代码 供参考 基于python的系统开发 应用机器学习、深度学习等技术 源代码 供参考 基于...

    2024年非常全面的100道Python常见基础面试题

    本教程包含了100个常见的Python面试题,涵盖Python基础知识、高级特性、网络编程、数据库操作、数据结构和算法等多个方面。每个问题都提供了详细的解析,帮助面试者更好地准备Python面试。 适用人群: 本教程适合...

    Python网络爬虫详解教程 + 知识总结

    因为python的脚本特性,python易于配置,对字符的处理也⾮常灵活,加上python有丰富的⽹络抓取模块,所以两者经常联系在⼀起。 这里整理了python爬虫详解教程和Python爬虫教程知识点总结,中文PDF文档。例外,...

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(88) 08 python s3 day52 ORM的querySet集合对象的特性.avi ├─(89) day52课上所有.rar (17)\\python全栈day51-60\\python全栈s3 day53;目录中文件数:7个 ├─(90) 01 python s3 day53 admin介绍.avi ├─(91)...

    简单了解Python3里的一些新特性

    给大家总结一下Python3一些新的更方便的特性!希望你们看完后也能高效率的编写代码 f-strings (3.6+) 在Python里面,我们经常使用format函数来格式化字符串,例如: user = Jane Doeaction = buylog_message = '...

    运维必备python基础语法全讲解.zip

    目录网盘文件永久链接 01 Python编程语言历史及特性 02 Python编程语言初接触 03 Python程序文件结构 ...23 容器数据类型特性总结 24 表达式与运算符 25 运算符优先级和Python语句概述 26 条件......

    零基础入门python3.7 ——基础知识总结(十四) python的特性归纳

    ['python', 'javascript', 'c'] 表示从索引1开始到索引4结束,但是不包括索引4。 示例2 a = ['java', 'python', 'javascript', 'c', 'c++', 'php', 'css', 'html5', 'go'] print(a[:4]) ['java', 'python', '...

    Python之路V1.3.pdf

    Python 基础主要总结Python 常用内置函数;Python 独有的语法特性、关键词 nonlocal, global 等;内置数据结构包括:列表(list), 字典(dict), 集合(set), 元组(tuple) 以及相关的高级模块collections 中的Counter,...

    python从入门到精通视频(全60集).zip

    网盘文件永久链接 1-Python编程语言历史及特性 2-Python编程语言初接触 3-Python程序文件结构 ...23-容器数据类型特性总结 24-表达式与运算符 25-运算符优先级和Python语句概述 ............

    Python基础知识点总结13张思维导图(附全套教程).pdf

    Python基础知识点总结13张思维导图(附全套教程) 如果初学者接触的第⼀门语⾔是Python,学习曲线则会平滑得多,掌握⼀些基本语法和Python内置的数据结构,已经可以上⼿写⼀些⼩⼯ 具或者⼩型应⽤。这对初学者来说,...

    Python 核心编程 第二版

    第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、 Web编程、数据库编程、扩展Python 和一些其他材料。  本书适合Python初学...

    Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用。本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式、迭代器和生成器、装饰器

    全国计算机等级考试二级python的学习笔记

    全国计算机等级考试二级Python学习笔记可以从以下几个方面进行总结: 1. Python基础知识 - Python语法基础:变量、数据类型、运算符、流程控制语句等。 - Python常用内置数据结构:列表、元组、字典、集合的定义、...

    小甲鱼零基础入门学习Python+全套课件下载

    前半部分主要讲解Python3的语法特性,后半部分着重讲解Python3在爬虫、Tkinter、Pygame游戏开发等实例上的应用。整个系列共16个章节,前边13个章节从一个小游戏引入Python,逐步介绍Python的语法以及语言特色。最后3...

    Python核心编程第二版

     4.6.5 Python类型操作符和内建函数总结   4.7 类型工厂函数   4.8 标准类型的分类   4.8.1 存储模型   4.8.2 更新模型   4.8.3 访问模型   4.9 不支持的类型   4.10 练习   第5章 数字 ...

Global site tag (gtag.js) - Google Analytics