python之有效编程

过滤列表
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=#ftn.id2766743][/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)]'