【发布时间】:2013-06-30 04:16:02
【问题描述】:
这是我的代码:
{names[i]:d.values()[i] for i in range(len(names))}
这在使用 python 2.7.3 时完全正常;但是,当我使用 python 3.2.3 时,我收到一条错误消息,指出 'dict_values' object does not support indexing。如何修改代码以使其与 3.2.3 兼容?
【问题讨论】:
-
values现在返回一个视图对象 docs.python.org/3.2/library/… -
你为什么要依赖从字典返回的
values的顺序? -
是的,除非 d 是
OrderedDict,否则这段代码是不可靠的 - 即使是,似乎也必须有更好的方法。 -
我使用它的一种情况是,当我知道 dict 中只有一个键值时,例如数据库行检索中的一列,每行仅采用 dict 格式。我认为 values() 在索引时无法自动转换是非常糟糕的。
标签: python python-3.x