免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1680 | 回复: 0
打印 上一主题 下一主题

python之有效编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-11 20:18 |只看该作者 |倒序浏览
过滤列表
Python 有一个内建 filter
函数,它接受两个参数:一个函数和一个列表,返回一个列表。
filter 返回的列表将会包含可以令该函数返回真(true)的传入列表中的元素。
例如
def foo(n):
    return n>10
>>>filter(foo, [100,-10,3,20,0,1])
[100,20]
当然,可以以遍历列表的形式晚上上述工作。但filter更清晰,易懂。试图在循环中改变数据结构是很容易出问题的。
关联列表
map 函数是filter的伴侣,map 接受一个函数和一个列表作为参数,
[/url]
并以列表中每个元素顺序地调用函数返回一个新的列表。
def foo(n):
    return n*2
>>>map(foo, [1,3,5]
[2,6,8]
数据中心思想编程
使用 map 和 filter 的一个好处是强迫你围绕数据进行思考。
费力不讨好的编程不重要,数据重要。 并且数据并不难,他们不过就是数据。 如果多了,就过滤。 如果不是我们要的,就关联。 聚焦在数据上,摒弃费力的劳作。少用for循环,多用map或filter。
动态载入模块
正常的导入模块:import module
语法查看搜索路径寻找已命名模块并以名字导入它们。
内建 __import__ 函数与 import
语句的既定目标相同,但它是一个真正的函数,并接受一个字符串参数。
>>>moduleNames = ['sys','os','re']
>>>modules = map(__import__, moduleNames)
[,
,
]
>>>modules[0].version
'2.4.4 (#37, Oct 18 2006, 10:24:37) [MSC vi.1310 32 bit (Intel)]'
>>>import sys
>>>sys.version
'2.4.4 (#37, Oct 18 2006, 10:24:37) [MSC vi.1310 32 bit (Intel)]'
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u/16651/showart_1286589.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP