Python中map()函数的基本用法与示例:如何高效处理列表数据
python中map的基本使用示例

地图()函数
map() 将根据提供的函数映射指定的序列。它是一个内置函数。
第一个参数函数使用参数序列中的每个元素调用函数 function,并返回一个包含每个函数 function 的返回值的新列表。
语法
map(function, iterable, ...)
map() 是Python 的内置高阶函数。它接收一个函数 f 和一个列表,并通过依次将函数 f 应用于列表的每个元素,获得一个新列表并将其返回。
1. 当只有一个 seq 时,将函数 func 应用于该 seq 的每个元素并得到一个新的 seq。
例如,对于列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果你想对列表中的每个元素进行平方,可以使用map()函数:
因此,我们只需要传入函数f(x)=x*x,就可以使用map()函数来完成这个计算:
def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
输出结果:
[1、4、9、10、25、36、49、64、81]
注意:map()函数不会改变原来的列表,而是返回一个新的列表。
使用map()函数,您可以通过传入转换函数将一个列表转换为另一个列表。
由于列表中包含的元素可以是任何类型,因此map()不仅可以处理仅包含数值的列表,实际上它可以处理包含任何类型的列表,只要传入的函数f可以处理这种数据类型即可。
假设用户输入的英文姓名不规范,不遵循首字母大写、后续字母小写的规则。请使用map()函数将一个列表(包含几个非标准英文名称)转换为包含标准化英文名称的列表:
输入:['adam', 'LISA', 'barT']
输出:['亚当','丽莎','巴特']
def format_name(s): s1=s[0:1].upper()+s[1:].lower(); return s1; print map(format_name, ['adam', 'LISA', 'barT'])
2、当seq多个时,map可以对每个seq并行执行下图所示的流程(注意是并行):
l2=map(lambda x,y:x**y,[1,2,3],[1,2,3]) for i in l2: print(i) l3=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,3]) for i in l3: print(i) python3中可以处理类表长度不一致的情况,但无法处理类型不一致的情况, l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2]) for i in l4: print(i) l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,'a']) for i in l4: print(i)
特殊用法,类型转换:
l=map(int,'1234') for i in l: print(type(i)) print(i)
如果该函数为 None,则会自动假定一个“identity”函数,即模仿 zip() 函数。
l=[1,2,3] x=map(None,l) print(x)
此时,None类型不是可调用对象。所以他无法返回值。
目的是将多个列表中同一位置的元素合并成一个元组。喜欢:
>>> print map(None, [2,4,6],[3,2,1]) [(2, 3), (4, 2), (6, 1)]
但是在python3中,返回的是一个迭代器,所以它实际上是不可调用的
总结
以上就是本文的全部内容。希望本文的内容对大家的学习或者工作有一定的参考和学习价值。如果您有任何疑问,可以留言沟通。感谢您对程序员之家的支持。