Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3中的Python 2 dict_items.sort()_Python_Python 3.x - Fatal编程技术网

Python 3中的Python 2 dict_items.sort()

Python 3中的Python 2 dict_items.sort(),python,python-3.x,Python,Python 3.x,我正在将一些代码从Python2移植到Python3。这是Python 2语法中的有效代码: def print_sorted_dictionary(dictionary): items=dictionary.items() items.sort() 在Python3中,dict_项没有方法“sort”-我如何在Python3中解决这个问题?使用items=sorteddictionary.items,它在Python2和Python3中都非常有效。使用items=so

我正在将一些代码从Python2移植到Python3。这是Python 2语法中的有效代码:

def print_sorted_dictionary(dictionary):  
    items=dictionary.items()  
    items.sort()
在Python3中,dict_项没有方法“sort”-我如何在Python3中解决这个问题?

使用items=sorteddictionary.items,它在Python2和Python3中都非常有效。

使用items=sorteddictionary.items,它在Python2和Python3中都非常有效。

dict.items在Python3中返回一个视图而不是列表,这与Python2.x中的iteritems方法类似。要获得项目的排序列表,请使用

sorted_items = sorted(d.items())
排序后的内置项接受一个iterable并返回一个新的已排序项列表

dict.items在Python3中返回一个视图而不是列表,这与Python2.x中的iteritems方法类似。要获得项目的排序列表,请使用

sorted_items = sorted(d.items())

排序后的内置项接受一个iterable并返回一个新的已排序项列表

请注意,发布的代码是一个缩进错误,函数实际上没有执行它所说的操作,它没有打印任何内容。在过去两三周内,我想这里有一个关于Python中有序字典的问题。我找不到它,但在搜索过程中我确实发现了这一点:大多数不同的有序dict实现都基于原始插入顺序,而不是排序顺序。不过,这并不难,创建一个实现树或在dict旁边保留排序列表的类。请注意,发布的代码是一个缩进错误,函数实际上不执行它所说的操作,也不打印任何内容。在过去两三周内,我想这里有一个关于Python中有序字典的问题。我找不到它,但在搜索过程中我确实发现了这一点:大多数不同的有序dict实现都基于原始插入顺序,而不是排序顺序。不过,创建一个实现树或在dict旁边保留排序列表的类并不是那么难。对我来说,编写既能在python2中工作又能在python3中工作的代码似乎是一个奇怪的加号。对我来说,在您编写的版本中编写好代码更有意义,这意味着如果您为Python 2.x编写代码,2to3可以翻译它。@Mike,在一般情况下,当然可以,但在这种情况下,排序很好,2to3也不会更正它,当然-所以你的建议和我的完全相同,我不认为你在这篇评论中的批评有什么意义。@Alex,我遇到过很多人,他们认为编写Python 2/Python 3多语言文字是件好事。我的评论并不是要批评您的解决方案,而是要向阅读本文的任何人澄清,在同一个文件中生成有效的Python 2和Python 3代码是一个糟糕的目标。对于我来说,生成同时在Python 2和Python 3中工作的代码似乎是一个奇怪的加号。对我来说,在您编写的版本中编写好代码更有意义,这意味着如果您为Python 2.x编写代码,2to3可以翻译它。@Mike,在一般情况下,当然可以,但在这种情况下,排序很好,2to3也不会更正它,当然-所以你的建议和我的完全相同,我不认为你在这篇评论中的批评有什么意义。@Alex,我遇到过很多人,他们认为编写Python 2/Python 3多语言文字是件好事。我的评论并不是要批评您的解决方案,而是要向阅读本文的任何人澄清,在同一个文件中生成有效的Python 2和Python 3代码是一个糟糕的目标。