Mic*_*err 4 sorting lambda dictionary python-2.7 python-3.x
这段代码适用于 Python 2.7,我如何在 Python 3 中完成这项工作?
arestas = dict()
edges = arestas.items()
edges.sort(key=lambda x: x[1])
Run Code Online (Sandbox Code Playgroud)
返回的错误是:
AttributeError: 'dict_items' 对象没有属性 'sort'
谢谢!
这里的问题是在 Python 3中dict.items()返回一个字典视图。就像你dict.viewitems()在 Python 2 中调用一样。
要么先将字典视图转换为列表,要么使用sorted()函数:
edges = list(arestas.items())
edges.sort(key=lambda x: x[1])
Run Code Online (Sandbox Code Playgroud)
或者
edges = arestas.items()
edges = sorted(edges, key=lambda x: x[1])
Run Code Online (Sandbox Code Playgroud)
由于后者包含了一个隐式转换list,它是更好的选择,除非您仍然需要访问未排序的列表。
| 归档时间: |
|
| 查看次数: |
10076 次 |
| 最近记录: |