Python - Map

本文详细介绍了Python内置函数map()的作用、参数、使用方法,以及如何结合lambda函数进行元素级操作,提供了一系列示例来展示其在处理列表、元组和集合等数据结构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python | ShareTechnote

Python的map()函数是一个内置的高阶函数,它将给定的函数应用于可迭代对象(如列表、元组或集合)的每个元素,并返回一个包含结果的迭代器。它是一种在不需要显式循环的情况下对集合的每个元素执行操作的方便方法。

map()函数接受两个参数:第一个是要应用于可迭代对象的每个元素的函数,第二个是可迭代对象本身。输入函数应该接受一个来自可迭代对象的元素作为单个参数,并返回一个将包含在结果迭代器中的值。

当你调用map()函数时,它会遍历输入的可迭代对象,并将提供的函数应用于每个元素。结果收集在一个新的迭代器中,可以根据需要转换为列表、元组或其他可迭代类型。

在Python中,你可以将任何函数(包括lambda函数)作为map()的输入函数。lambda函数是用lambda关键字定义的匿名函数,它们可以直接在map()调用中使用,用于创建小型的一次性使用的函数。

当需要对集合的每个元素应用特定的操作或转换时,map()函数特别有用,例如缩放数值、转换数据类型或从复杂数据结构中提取信息。通过使用map()和lambda函数或其他自定义函数,你可以为逐元素操作创建更易读、更简洁的代码。

示例:

注意1:本页面的所有示例都是用Python 3.x编写的。如果你使用Python 2.x,可能无法正常工作。

注意2:除非特别提及,否则本页面的所有示例都假定是在Windows 7上编写/运行的。如果你在其他操作系统上运行,可能需要稍微修改一下语法。

应用带有一个参数的正常函数的map - 示例1
应用带有一个参数的lambda函数的map - 示例2
应用带有多个参数的正常函数的map - 示例3
应用带有多个参数的lambda函数的map - 示例4
打印映射对象中的所有项目 - 示例5
打印映射对象中的所有项目 - 示例6
打印映射对象中的所有项目 - 示例7
索引映射对象中的项目 - 示例8

< Example 1 >

 

def f(x):

    y = x^2 + 2*x + 3

    return y

 

xList = [-3,-2,-1,0,1,2,3]

 

yList = map(f,xList)

print(yList)

print(list(yList))

 

Result :----------------------------------

<map object at 0x0306C770>

[2, -1, -4, 5, 6, 11, 8]

 

 

< Example 2 >

 

xList = [-3,-2,-1,0,1,2,3]

 

yList = map(lambda x: x^2 + 2*x + 3,xList)

print(yList)

print(list(yList))

 

Result :----------------------------------

<map object at 0x0314C7D0>

[2, -1, -4, 5, 6, 11, 8]

 

 

< Example 3 >

 

def timeStamp(y,m,d):

    tStamp = str(y) + "-" + m + "-" + str(d)

    return tStamp

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(timeStamp,yList,mList,dList)

print(tStamp)

print(list(tStamp))

 

Result :----------------------------------

<map object at 0x03000A30>

['2017-Jan-1', '2017-Feb-3', '2017-Mar-6', '2017-Apr-7']

 

 

< Example 4 >

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(lambda y,m,d : str(y) + "-" + m + "-" + str(d) ,yList,mList,dList)

print(tStamp)

print(list(tStamp))

 

Result :----------------------------------

<map object at 0x03091A30>

['2017-Jan-1', '2017-Feb-3', '2017-Mar-6', '2017-Apr-7']

 

 










< Example 5 >

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(lambda y,m,d : str(y) + "-" + m + "-" + str(d) ,yList,mList,dList)

 

for index, item in enumerate(tStamp):

   print(index,',',item)

    

 

Result :----------------------------------

0 , 2017-Jan-1

1 , 2017-Feb-3

2 , 2017-Mar-6

3 , 2017-Apr-7

 

 

< Example 6 >

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(lambda y,m,d : str(y) + "-" + m + "-" + str(d) ,yList,mList,dList)

 

for item in enumerate(tStamp):

   print(item)

 

 

Result :----------------------------------

(0, '2017-Jan-1')

(1, '2017-Feb-3')

(2, '2017-Mar-6')

(3, '2017-Apr-7')

 

 

< Example 7 >

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(lambda y,m,d : str(y) + "-" + m + "-" + str(d) ,yList,mList,dList)

 

for item in enumerate(tStamp):

    print(item[0],',',item[1])

 

 

Result :----------------------------------

0 , 2017-Jan-1

1 , 2017-Feb-3

2 , 2017-Mar-6

3 , 2017-Apr-7

 

 

< Example 8 >

 

yList = [2017,2017,2017,2017]

mList = ["Jan","Feb","Mar","Apr"]

dList = [1,3,6,7];

 

tStamp = map(lambda y,m,d : str(y) + "-" + m + "-" + str(d) ,yList,mList,dList)

 

tStampList = list(tStamp);

 

print(tStampList)

print(tStampList[0])

print(tStampList[1:3])

 

 

Result :----------------------------------

['2017-Jan-1', '2017-Feb-3', '2017-Mar-6', '2017-Apr-7']

2017-Jan-1

['2017-Feb-3', '2017-Mar-6']

 

 

< Example xx >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值