Hadoop 软件测试工程师 顺序查找 database multithreading api silverlight plugins swiftui usb progressjs oracle无效的列索引 内存计算 python正则表达式 python在线教程 python写入txt文件 java语言 java遍历集合 java创建集合 java集成开发环境 网页游戏代码 typemonkey 枪神传说辅助 苹果滚动截屏 fireworks8 程序卸载 python爬虫代码 comsol下载 js文件上传 c4d挤压 c4d挤压怎么用 绿幕抠图 js代码混淆工具 骰子牛牛怎么玩 rpm卸载命令 r330不能识别墨盒 只狼台词 foobar2000插件 全能音频转换通 炫舞爱的惊喜
当前位置: 首页 > 学习教程  > 编程语言

map函数

2020/8/11 18:49:55 文章标签:

map函数是python的内置函数之一。
代码如下:

def func(n):
  return len(n)

x = map(func, ('hello', 'world'))
print(x)			# <map object at 0x0000020F8D6BD988>
print(list(x))		# [5, 5]
print(tuple(x))		# ()

func为map函数需要的第一个参数,该参数为一个函数表达式,(‘hello’, ‘world’)为map需要的第二个参数,该参数通常是可迭代的,比如列表,元胞,此处我们采用元胞输入。该函数会将第二个参数中的各个元素值传递给func,执行后得到的结果统一返回,这里我们赋值给x,但是此时的x为一个map对象并不能够直接打印显示,想要直观地看到打印后地结果,我们还需要使用list或者tuple方法对变量x进行类型转换,最后打印即可得到输出。
存在的问题:
我们可以看到当我们使用上述方法打印时,print(list(x))可以正常得到结果[5, 6, 6],而print(tuple(x))不能够输出结果。我们进一步进行如下尝试:

def func(n):
  return len(n)

x = map(func, ('hello', 'world'))
print(x)			# <map object at 0x0000020F8D6BD988>
print(tuple(x))		# (5, 5)
print(list(x))		# []

对比两次的结果,我们可以发现,当我们优先以list类型输出时,list类型结果可以正常显示,而tuple类型的结果无法正常显示,当我们以tuple类型优先输出时,tuple类型结果可以正常显示,而list类型结果无法正常显示,仿佛被屏蔽了…这是因为map的结果是一个可迭代的对象,它只能够被操作一次,所以当tuple优先操作时,list便为空,list先操作时,tuple便为空。 为了避免这种情况的出现,我们可以使用以下方式对代码进行改写:

def func(n):
  return len(n)

x = map(func, ('hello', 'world'))
x1 = list(x)
x2 = tuple(x1)
print(x1)		# [5, 5]
print(x2)		# (5, 5)

可以看到此时输出可以同时得到list与tuple类型的输出结果。


本文链接: http://www.dtmao.cc/news_show_100035.shtml

附件下载

上一篇:sql神器--SQLMAP

下一篇:apache的限流配置

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?