相关疑难解决方法(0)

获取map()以返回Python 3.x中的列表

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

答: Python 2.6:

>>> map(chr, [66, 53, 0, 94])
['B', '5', '\x00', '^']
Run Code Online (Sandbox Code Playgroud)

但是,在Python 3.1中,上面返回了一个map对象.

B: Python 3.1:

>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>
Run Code Online (Sandbox Code Playgroud)

如何在Python 3.x上检索映射列表(如上面的A中所示)?

或者,有更好的方法吗?我的初始列表对象有大约45个项目,id喜欢将它们转换为十六进制.

python list python-3.x map-function

480
推荐指数
5
解决办法
37万
查看次数

collections.ChainMap的目的是什么?

在Python 3.3中,一个ChainMap类被添加到collections模块中:

提供了一个ChainMap类,用于快速链接多个映射,以便将它们视为一个单元.它通常比创建新字典和运行多个update()调用快得多.

例:

>>> from collections import ChainMap
>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = ChainMap(y, x)
>>> for k, v in z.items():
        print(k, v)
a 1
c 11
b 10
Run Code Online (Sandbox Code Playgroud)

它是由动机这个问题,并通过公开这一个(没有PEP创建).

据我所知,它是一个替代,有一个额外的字典,并用update()s 维护它.

问题是:

  • 用例ChainMap包括哪些用例?
  • 有真实世界的例子ChainMap吗?
  • 它是否用于切换到python3的第三方库?

额外问题:有没有办法在Python2.x上使用它?


我在Transforming Code into Beautiful, Idiomatic PythonRayCon Hettinger的PyCon演讲中听说过它,我想将它添加到我的工具包中,但我不知道何时应该使用它.

python collections dictionary data-structures python-3.x

60
推荐指数
4
解决办法
1万
查看次数