加载中...

map

map

map(func,iterable) 是一个功能性函数,用于处理数据。它把 iterable 中的数据一个一个拿出来,扔到 func 做处理,并通过调用迭代器来获取返回值。

参数:

  • func : 函数(内置函数或自定义函数)
  • iterable : 可迭代对象(容器类型数据,range对象,迭代器)

返回值:

  • 迭代器

示例

把列表中的元素都变成整型

lst = ["1","2","3","4"]
lst_new = []
for i in lst:
	lst_new.append(int(i))
print(lst_new)

使用 map 改写:

it = map(int,lst)
print(isinstance(it,Iterator))

调用迭代器 next

print(next(it))
print(next(it))
print(next(it))
print(next(it))


"""
代码解析:
	第一次调用迭代器
		先把列表中的第一个元素"1"拿出来扔到int中做强转,变成整型1返回出来
	第二次调用迭代器
		先把列表中的第一个元素"2"拿出来扔到int中做强转,变成整型2返回出来
	第三次调用迭代器
		先把列表中的第一个元素"3"拿出来扔到int中做强转,变成整型3返回出来
	第四次调用迭代器
		先把列表中的第一个元素"4"拿出来扔到int中做强转,变成整型4返回出来
"""

调用迭代器 for

it = map(int,lst)
for i in it:
	print(i)

调用迭代器 for + next

print("<======>")
it = map(int,lst)
for i in range(3):
	print(next(it))

强转迭代器 => 列表:

it = map(int,lst)
print(list(it))

[1,2,3,4] => [2,8,24,64]

lst = [1,2,3,4]
lst_new = []
for i in lst:
	lst_new.append(i << i)
print(lst_new)

使用 map 改写:

def func(n):
	return n << n
	
it = map(func,lst)
print(list(it))

字典翻转

#已知 dic = {97:"a",98:"b",99:"c"}  得到 ["a","b","c"]
dic = {97:"a",98:"b",99:"c"}
dic_new = {}
for k,v in dic.items(): #字典翻转处理
	dic_new[v] = k

lst = ["a","b","c"]
lst_new = []
for i in lst:
	lst_new.append(dic_new[i])
print(lst_new)

使用 map 改写:

lst = ["a","b","c"]
def func(n):
	dic = {97: "a", 98: "b", 99: "c"}
	dic_new = {}
	for k, v in dic.items():
		dic_new[v] = k
	return dic_new[n]

it = map(func, lst)
print(list(it))
posted @ 2024-03-03 16:59  江寒雨  阅读(67)  评论(0)    收藏  举报