python 内置函数中的map()、zip()、enumerate()

1. 函数map()

描述:map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以第二个参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
语法:map(function, iterable, …)
参数

  1. function:实现功能的函数
  2. 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])
参数

  1. sequence:一个可以支持迭代的对象
  2. 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)]
欢迎批评、指正!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值