python兼容性友好字典方法?

时间:2014-03-03 23:52:38

标签: python python-3.x dictionary compatibility backwards-compatibility

哪里可以找到最前/后兼容的词典方法的信息?例如,在python 2.5之前没有变化的东西也会在python3中得到支持吗?

例如:我不确定d.itervalues()是否是一个向后/向前兼容的方法?我用它来从字典中获取单个元素:

# is this good form for those who care about compatibility?
d = {"foo": {"bar": []}}
elt = next(d.itervalues())

2 个答案:

答案 0 :(得分:3)

对于此特定方法字典。 itervalues(),它在Python 3中更改为字典。 values()

检查此库以解决Python 2& 3

之间的兼容性问题

https://pythonhosted.org/six/

答案 1 :(得分:1)

如果在内存中具体化时不太可能是一个非常大的列表,那么使用.values()将向前兼容。

确定,你可以这样做:

d = {"foo": {"bar": []}}
elt = next(iter(d.values()))

和elt返回

{'bar': []}

我亲自测试过这适用于Python 2.6& 3.3,但iter was first available in 2.2.

代码将向前兼容,然后当您不再希望在2中获得支持时,您可以清理iter部分。