map与apply的差别
时间: 2023-08-07 11:07:54 浏览: 97
浅谈Pandas中map, applymap and apply的区别
在Python中,map()和apply()都是用于对可迭代对象中的元素进行操作的函数。它们的主要区别在于用法和返回结果。
1. map()函数:
- 用法:map(function, iterable)
- 接受一个函数和一个可迭代对象作为参数。
- 将函数应用于可迭代对象中的每个元素,并返回一个新的迭代器对象,其中包含应用函数后的结果。
- 返回的是一个迭代器对象,需要使用list()等函数将其转换为列表或其他类型的可迭代对象。
示例使用map()函数将列表中的每个元素平方:
```python
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers))
```
输出结果为:
```
[1, 4, 9, 16, 25]
```
2. apply()函数:
- 用法:apply(function, *args, **kwargs)
- 接受一个函数和参数列表(*args)以及关键字参数(**kwargs)。
- 将函数应用于给定的参数,并返回函数的返回值。
- 返回的是函数的返回值,而不是一个迭代器对象。
示例使用apply()函数计算两个数的和:
```python
def sum_numbers(a, b):
return a + b
result = apply(sum_numbers, (2, 3))
print(result)
```
输出结果为:
```
5
```
总结:
- map()函数将函数应用于可迭代对象的每个元素,并返回一个新的迭代器对象。
- apply()函数将函数应用于给定的参数,并返回函数的返回值。
- map()返回一个迭代器对象,而apply()直接返回函数的返回值。
阅读全文