python glob 模块 map函数

昨晚有了点小想法,想写个小脚本。

用到了  glob 模块  和  map 函数   觉得他们配合起来和不错的。





#coding:utf8
import  glob
print "glob.golb 方法返回 " ,  glob.glob(r"/var/log/*.log")
a = glob.iglob(r"/var/log/*.log")
print "glob.igolb 方法返回" , a
for  i in  a:
    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

list1 =[1,3434,4343]
def  function(x):
    return x*100
print map(function,list)

执行结果:

[100, 343400, 434300]

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


2

lis1  =[1,2,3]
lis2  =[4,5,6]
lis3  =[7,8,9]
print  map(None,lis1,lis2,lis3)

执行结果:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

把列表相同 index 值组合成一个元组。如果不列表元素个数不一样,没有的以None表示

例如 list2 = [4,5,6,'x']

执行结果:

[(1, 4, 7), (2, 5, 8), (3, 6, 9), (None, 'x', None)]


3

把None 换成另一个function 呢?

map(None,lis1,lis2,lis3)
例如
def be(a,b,c):
    return a+b+c
    
lis1  =[1,2,3]
lis2  =[4,5,6]
lis3  =[7,8,9]
print  map(be,lis1,lis2,lis3)

执行结果:

[12, 15, 18]

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

注:

列表元素必须相等 


你可能感兴趣的:(python,函数,map,模块,glob)