23421re 发表于 2015-12-3 08:27:17

python glob 模块 map函数

昨晚有了点小想法,想写个小脚本。
用到了glob 模块和map 函数   觉得他们配合起来和不错的。





1
2
3
4
5
6
7
#coding:utf8
importglob
print "glob.golb 方法返回 " ,glob.glob(r"/var/log/*.log")
a = glob.iglob(r"/var/log/*.log")
print "glob.igolb 方法返回" , a
fori ina:
    print i




执行结果


glob.golb 方法返回['/var/log/anaconda.log', '/var/log/yum.log', '/var/log/mysqld.log', '/var/log/scrollkeeper.log', '/var/log/boot.log']
glob.igolb 方法返回 <generator object iglob at 0x14a178c0>
print for循环
/var/log/anaconda.log
/var/log/yum.log
/var/log/mysqld.log
/var/log/scrollkeeper.log
/var/log/boot.log

map函数好东西啊

Python里面还有什么东西是能够同时迭代多个序列的吗?想起来有个函数map(function, iterable, ...) ,它能够同时遍历给定的多个序列,每次都从每个序列中各取一个值组成一个元组对象,然后调用 function 并传入该对象。如果多个序列的长度不一样,那么所有其他序列都会被用None填充到最长序列的长度。
1

1
2
3
4
list1 =
deffunction(x):
    return x*100
print map(function,list)




执行结果:

字典的每个元素都执行function 在输出结果。

2

1
2
3
4
lis1=
lis2=
lis3=
printmap(None,lis1,lis2,lis3)




执行结果:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
把列表相同 index 值组合成一个元组。如果不列表元素个数不一样,没有的以None表示
例如 list2 =
执行结果:
[(1, 4, 7), (2, 5, 8), (3, 6, 9), (None, 'x', None)]

3
把None 换成另一个function 呢?

1
2
map(None,lis1,lis2,lis3)
例如





1
2
3
4
5
6
7
def be(a,b,c):
    return a+b+c
   
lis1=
lis2=
lis3=
printmap(be,lis1,lis2,lis3)




执行结果:

把列表相同 index 值 按照function 执行。
注:

列表元素必须相等


页: [1]
查看完整版本: python glob 模块 map函数