Python开发之数据转换:map
和apply
函数的灵活使用
在Python编程中,我们经常需要对数据进行转换操作,比如将一组数字全部转换为其平方,或者将一个字符串列表中的所有元素转换为大写。在这些场景中,Python的内建函数map
和apply
是非常有用的工具。
map
函数:批量处理
map
函数可以理解成一个“批量处理器”,它会对传入的每一个元素应用同一个函数。
基本用法
假设我们有一个数字列表,我们想要将每个数字都转换为其平方:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
这里,lambda x: x**2
是一个匿名函数,它接收一个参数x
,并返回x
的平方。map
函数将这个匿名函数应用到列表numbers
的每一个元素上,并返回一个新的迭代器,该迭代器包含所有转换后的元素。
为了得到一个列表,我们可以使用list()
函数:
squared_numbers_list = list(squared_numbers)
应用场景
假设你正在开发一个在线购物网站,需要处理用户的订单信息。每个订单由一个字典表示,包含订单号、商品名、价格等信息。现在你想要计算每个订单的总价。
orders = [
{
'order_id': 1, 'product': 'Laptop', 'price': 1100},
{
'order_id': 2, 'product': 'Mouse', 'price': 50},
{
'order_id': 3, 'product': 'Keyboard', 'price': 80}
]
# 使用map计算每个订单的总价
total_prices = map(lambda order: order['price'], orders)
# 将map对象转换为列表
total_prices_list = list(total_prices)
# 输出总价
print(total_prices_list)