在做力扣时是不是经常遍历列表?用map就对啦!
它是 Python 内置的一个高阶函数,用于将一个函数应用到一个可迭代对象(如列表、元组等)的每个元素上,返回一个新的可迭代对象,注意返回值并不是列表(元组)哦!
map(function, iterable)
上式中的function 指的是迭代过程中对所有迭代对象的统一操作。
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
(lambda作用是:如果你想创建一个函数,但是不想对其命名,就可以用其代替)注意结果中 list(squared_numbers) !
既然可以lambda一个函数,当然也能自己写一个有名称的函数咯!
def square(x):
return x**2
numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result)) # 输出: [1,4,9,16,25]
以上是map函数迭代一个列表,当然它也可以同时迭代两个列表。就像上述函数square()函数只有一个参数x,所以只对一个列表进行迭代。如果有两个甚至多个参数那么就能对多个列表迭代。
numbers1 = [1, 2, 3]
numbers2 = [10, 20, 30]
result = map(lambda x, y: x + y, numbers1, numbers2)
print(list(result)) # 输出: [11, 22, 33]
当然,如果你想让x的平方加上y也很容易,直接在函数中上修改即可!
如果想和第二段代码一样,创建对应的函数即可哦。
能给小王点个关注吗 0wO!