我从python 2.6升级到python 3.5.2,并且我已经更改为python 3.5.2并修复了几乎所有的更改。现在我在排序列表时遇到了问题。
我以前的代码如下:
somelist_variable = [{"idx" : 9, "name": "Syed"}, {"idx": 2, "name": "Mex"}]
somelist_variable.sort(lambda a, b: int(a.get("idx")) - int(b.get("idx")))
上面的代码在python 2.6中运行良好,但是它给出了一个错误python 3.5.2,我已经检查了很多地方将2个参数传递给lamba但我找不到任何东西。你们中的任何人都可以帮助我吗?
感谢。
答案 0 :(得分:1)
好的,你可以解释一下你想要的吗?如果你只想通过" idx"对somelist_variable进行排序。关键字参数你应该写:
somelist_variable.sort(key=lambda a: int(a.get("idx")))
或高级
from operator import itemgetter
somelist_variable.sort(key=itemgetter('idx'))
答案 1 :(得分:0)
这适用于您的情况
{{user?.score}}
答案 2 :(得分:0)
该函数应该只接受一个参数。返回值越小,列表中的元素就越早出现:
somelist_variable.sort(key=lambda a: int(a.get("idx")))
此外,您必须明确指定list.sort
的参数是关键字。