python - Python:使用地图功能打印元素
问题描述
我是 Python 新手,正在学习如何使用map
函数。我遇到以下问题:
li=['12','34']
ints=map(int,li)
list(ints) #prints [12,34] OK
p1 = map(print,list(ints))
list(p1) #prints [] WHY?
p2 = map(print, li)
list(p2) #prints 12 34 [None, None] OK
我只是将print
函数映射到字符串列表和整数列表并得到不同的结果。我不明白为什么会p1
和p2
行为不同。
解决方案
map
返回一个地图对象,当用尽时不会产生值。因此,当您list
第二次调用时,ints
它将无法将该功能应用于任何内容,因此list(map(print,list(ints)))
将返回一个空列表[]
list
检查两次应用于同一地图对象时会发生什么:
>>> li=['12','34']
>>> ints=map(int,li)
>>> ints
<map object at 0x7f4e375c7898>
>>> list(ints)
[12, 34]
>>> list(ints)
[]
推荐阅读
- asp.net - 如何让 Json.NET 为具有复杂值的属性设置 IsSpecified 属性?
- django - django paginator 不工作,但链接手动工作
- node.js - 尝试获取令牌时出现 Dropbox 400 错误(身份验证)
- android - 无法在 Android 上使用 Cloudfront 签名 Cookie 播放 hls 视频
- python - 如何解决此列表索引问题?
- java - Base64 解码错误 最后一个单元没有足够的有效位
- node.js - NextJS 错误:您的 `getServerSideProps` 函数没有返回对象
- classification - 不平衡分类的评价指标
- php - PHP 客户端 SSL 证书认证
- html - 如何在页面上垂直居中项目