获取map()以在Python 3.x中返回一个列表
我试图将一个列表映射到十六进制,然后在别处使用列表。 在Python 2.6中,这很简单:
答: Python 2.6:
>>> map(chr, [66, 53, 0, 94])
['B', '5', 'x00', '^']
但是,在Python 3.1上,上面返回一个地图对象。
B: Python 3.1:
>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>
如何检索Python 3.x中的映射列表(如上面的A所示)?
或者,有没有更好的方法来做到这一点? 我的初始列表对象有大约45个项目和id想要将它们转换为十六进制。
做这个:
list(map(chr,[66,53,0,94]))
在Python 3+中,遍历迭代器的许多进程自己返回迭代器。 在大多数情况下,这最终会节省内存,并且应该让事情变得更快。
如果你最终要做的就是遍历这个列表,那么甚至不需要将它转换为列表,因为你仍然可以迭代map
对象,如下所示:
# Prints "ABCD"
for ch in map(chr,[65,66,67,68]):
print(ch)
你为什么不这样做:
[chr(x) for x in [66,53,0,94]]
这就是所谓的列表理解。 你可以在Google上找到大量的信息,但是这里是关于列表解析的Python(2.6)文档的链接。 不过,您可能对Python 3文档更感兴趣。
Python 3.5中新增和整洁:
[*map(chr, [66, 53, 0, 94])]
感谢其他解压缩概括
链接地址: http://www.djcxy.com/p/53577.html