1. 函数map()
    
   
    
     描述
    
    :map() 会根据提供的函数对指定序列做映射。
    
    第一个参数 function 以第二个参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的
    
     新列表
    
    。
    
    
     语法
    
    :map(function, iterable, …)
    
    
     参数
    
    :
   
- function:实现功能的函数
- iterable:迭代序列,可以是多个。
    
     返回值
    
    :
    
    Python 2.x 返回列表。 Python 3.x 返回迭代器。
    
    
     实例
    
    :
   
#我用的是3.5版本,返回一个迭代对象
def fun(x):
    return x**2
res=map(fun,[1,2,3,4,5])
res_=[i for i in res]
print(res_)  #[1, 4, 9, 16, 25]
#如果里面的参数长度大小不同的话,它会选择最小长度参数来计算
# x长度为5、y长度为8、z长度为4
res1=map(lambda x,y,z:x**2+y**2+z**2,[1,2,3,4,5],[1,2,3,4,5,6,7,8],[1,2,3,4])
res1_=[i for i in res1]
print(res1_)  #[3, 12, 27, 48]
#除了计算幂函数,还可利用 map 函数的映射功能完成其他任务,例如规范名字格式:
name_list={'tony','cHarLIE','rachAEl'}
def format_name(s):
    ss=s[0:1].upper()+s[1:].lower();
    return ss
print (list(map(format_name,name_list))) #['Tony', 'Rachael', 'Charlie']
    
    
    
     2. 函数enumerate()
    
   
    
     描述
    
    :enumerate() 函数用于将一个
    
     可遍历的数据对象
    
    (如列表、元组或字符串)组合为一个索引序列,
    
     同时列出数据和数据下标
    
    ,一般用在 for 循环当中。2.6 中添加了 start 参数。
    
    
     语法
    
    :enumerate(sequence, [start=0])
    
    
     参数
    
    :
   
- sequence:一个可以支持迭代的对象
- start:输出下表起始位置
    
     返回值
    
    :一系列的键值对
    
    
     实例
    
    :
   
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
res=list(enumerate(seasons))
print(res)
print(res[0][1]) # 取一个元素
#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
#Spring
print(list(enumerate(seasons, start=1)))      # 下标从 1 开始
#[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
for i,v in enumerate(seasons,start=0):
   print(i, v)
    #0 Spring
    #1 Summer
    #2 Fall
    #3 Winter
    
    
    
     3. 函数zip()
    
   
    
     描述
    
    :zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
    
    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
    
    
     语法
    
    :zip([iterable, …])
    
    
     参数
    
    :iterabl – 一个或多个迭代器
    
    
     返回值
    
    :返回元组列表
    
    
     实例
    
    :
   
x=[5,4,3,2,1]
y=["o","p","q","r","s"]
z=[1,2,3]
res=zip(x,y,z)
res_=[i for i in res]
print(res_) # 最终结果的元素个数和最短的列表一致
#[(5, 'o', 1), (4, 'p', 2), (3, 'q', 3)]
res1=zip(*res_)
res1_=[i for i in res1]
print(res1_) # 反解:[(5, 4, 3), ('o', 'p', 'q'), (1, 2, 3)]
 
