#python内置函数 其中之一 map()
#map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一.
def square(x):
return x ** 2
print(list(map(square,[1,2,3,4,5])))
print(list(map(lambda x:x ** 2,[1,2,3,4,5])))
print(list(map(lambda x,y: x+y, [1,3,5,7,9],[2,4,6,8,10])))
#如果map()函数中的函数是多个参数,那么map传参的时候也应该传递多个序列.
tuple_a = map(lambda x, y : (x**y,x+y),[2,4,6],[3,2,1])
print(list(tuple_a))
def func1(x):
# 对序列中的每一个元素乘以10并返回
return x*10
x = map(func1,range(0,10))
print(1,list(x))
# map函数返回的迭代器只能迭代一次,迭代之后会自动清空
print(2,list(x))
import time
list1 = list()
#列表推导式效率 > map映射函数 > 普通for循环
# 普通for循环
start = time.perf_counter()
for i in range(0, 10000000):
list1.append(i)
print("普通for循环耗时:", time.perf_counter() - start)
# 列表推导式
list1.clear()
start = time.perf_counter()
list1 = [i for i in range(0, 10000000)]
print("列表推导式循环耗时:", time.perf_counter() - start)
# map映射函数
list1.clear()
start = time.perf_counter()
list1 = list(map(lambda x: x, range(0, 10000000)))
print("map映射函数耗时:", time.perf_counter() - start)
#
# 四.重点总结
# 1.map函数的参数是由函数和一个序列或者多个序列构成;
#
# 2.map函数处理的结果是迭代器,而且只能迭代一次,如果需要多次使用,请提前保存;
输出:
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
[3, 7, 11, 15, 19]
[(8, 5), (16, 6), (6, 7)]
1 [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
2 []
普通for循环耗时: 2.924486336
列表推导式循环耗时: 0.8649257510000004
map映射函数耗时: 1.7162190639999997
Process finished with exit code 0