如何在Python 3.x上检索映射列表?

问题:

我试图将列表映射到十六进制,然后在其他地方使用列表。在python 2.6中,这很简单:
A: Python 2.6:

>>> map(chr, [66, 53, 0, 94])
['B', '5', '\x00', '^']

但是,在Python 3.1上,返回一个map对象。
B: Python 3.1:

>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>

如何在Python 3.x上检索映射列表(如上面的一个)?
或者,有没有更好的方法呢?我的初始列表对象有大约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)

Code问答:       codewenda.com
Stackoverflow: Getting a map() to return a list in Python 3.x
本文链接: http://codewenda.com/%E8%8E%B7%E5%8F%96%E4%B8%80%E4%B8%AAmap%EF%BC%88%EF%BC%89%E8%BF%94%E5%9B%9EPython%203.x%E4%B8%AD%E7%9A%84%E5%88%97%E8%A1%A8

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 4 =