map函数操作元素
map函数操作每一个元素
map() 函数会根据提供的函数对指定序列做映射,映射的处理结果会得到对应新的序列值。
map() 方法的语法(与filter相似):
map(function, iterable,...)
说明:
- function -- 映射处理函数,返回值组成新的序列值(这与filter中的函数作用不同)。
- iterable -- 一个或多个序列。
下面对比filter函数和map函数
# 原始数据
alist=[1,2,3,4,5,6,7,8,9,10]
print(alist) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 定义判断函数,比如隔行取数
def isSpan(x):
if x % 2==0:
return True
# 利用判断函数过滤,然后转换为列表
f_alist=list(filter(isSpan,alist))
print(f_alist) # [2, 4, 6, 8, 10]
# 利用判断函数映射处理,然后转换为列表
m_alist=list(map(isSpan,alist))
print(m_alist) # [None, True, None, True, None, True, None, True, None, True]
map()与lambda表达式的结合
# 原始数据
alist=[1,2,3,4,5,6,7,8,9,10]
print(alist) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 利用map()函数,把数据每一个元素平方操作
m_alist=list(map(lambda x:x**2,alist))
print(m_alist) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 利用map()函数,把数据每一个元素变为字符串,简单函数(不使用lambda)
m_alist=list(map(str,alist))
print(m_alist) # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
# 利用map()函数,把数据每一个元素变为字符串,并且拼接字母(使用lambda)
m_alist=list(map(lambda x:"A"+str(x),alist))
print(m_alist) # ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10']