Python常见方法(2)-iterator的map方法

本文介绍了Python的Map方法,重点展示了如何使用Map处理list和dictionary。在Python3.x中,Map返回iterator对象。通过示例,演示了如何将list中的字符串元素转换为其重复形式,以及如何对dictionary的key进行特定运算。对于dictionary,Map默认处理key,不涉及value。文章强调了在使用Map处理dictionary时的常见误区,并提供了相应的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

Map作为一种常见的python方法,在python代码学习中是必备方法;Map方法的作用对象是iterator,比如list,dictionary, tuple;Map方法的返回对象在python 2.x和 python 3.x略有差别;python2.x 中返回的是list类型对象,python3.x中返回的是iterator类型对象;Map方法的输入形式为 map(function, iterator),即对iterator中的元素分别做function处理;本文以python3.x为运行环境进行举例, 直接上料~


一、以list类型作为map的输入对象

我们的自定义一个简单任务,打印"a", “b”, “c” 三个字母的重写形式,即"aa", “bb”, “cc” ;
首先我们定义一个list,代码如下

a1 = ["a", "b", "c"]

然后我们定义一个方法func,用它来对list中的每个元素进行处理,代码如下:

def func(x):
    return x*2

我们使用map完成字母重写并打印生成数据类型,代码如下

b1 = map(func, a1)
print(b1)

打印结果如下,

<map object at 0x7f9cd08e0390>

由此可见,map方法返回一个iterator类型的map对象

最后,我们把结果转化为list形式的结果,并打印

c1 = list(b1)
print(c1)

打印结果如下,

['aa', 'bb', 'cc']

OK,我们完成了map方法的初级使用;我们可以自行把该方法的输入拓展到其他iterator类型数据,同时使用不同function。

【注意:如果使用dictionary对象,那么function默认对dictionary的key做处理,不考虑value值】

这也是大家针对dictionary使用map方法时出现的常见错误!!!
下边我就用dictionary(字典)作为输入为大家展示一下map方法的使用~

二、以dictionary类型作为map的输入对象

我们定义的任务是,打印dictionary中key值的平方+1,作为输出
代码如下

a2 = {1:"a",2:"b",3:"l"}
def func(x):
    return x**2 +1
b2 = map(func, a2)
print(b2)
c2 = list(b2)
print(c2)

打印结果如下,

<map object at 0x7f2cf5ffa470>
[2, 5, 10]

打印结果符合我们预期,如果想更熟练的应用map方法,请自己多写几个方法实现一下哦~

写在最后,希望本blog对你的python学习有所帮助,欢迎点赞讨论~


### Python中`map()`函数的介绍 #### `map()`函数概述 在Python中,`map()`函数是一个内置函数,用于对可迭代对象中的每个元素应用指定函数,并返回一个包含这些操作结果的新迭代器。作为常见的函数式编程工具之一,此功能有助于提升代码的简洁性可读性[^2]。 #### 语法说明 `map()`遵循以下语法结构: ```python map(function, iterable, ...) ``` - **function**: 需要被调用并作用于各个数据项上的函数。 - **iterable**: 可以是一个或多个支持迭代的对象(例如列表、元组),它们的数据会被传递给上述定义好的函数处理[^3]。 #### 使用实例展示 下面通过几个具体的例子来解释如何利用`map()`实现不同的需求: ##### 将列表内所有数值加倍 假设有一个整数列表,目标是创建一个新的列表,其中原列表里的每一项都被乘以二。 ```python numbers = [1, 2, 3, 4] def double(x): return x * 2 doubled_numbers_iterator = map(double, numbers) # 转换为list查看具体的结果 print(list(doubled_numbers_iterator)) ``` 这段程序将会输出 `[2, 4, 6, 8]` 。这里我们先定义了一个简单的倍增函数`double`, 接着使用`map()`把该逻辑施加到了整个数字集合上;最后为了直观看到变化前后的对比效果,还进行了类型转换以便打印出来[^4]。 ##### 对字符串列表执行大写转换 如果面对的是由单词组成的字符串列表,则可以借助lambda表达式快速完成大小写的调整工作。 ```python words = ["hello", "world"] upper_words_iterator = map(lambda word: word.upper(), words) # 输出最终得到的大写字母版本 print(list(upper_words_iterator)) ``` 这将显示 `['HELLO', 'WORLD']` ,证明了即使对于非数值类型的项目也能灵活运用`map()`来进行批量修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Efred.D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值