首页 > 解决方案 > Python 语句适用于 Python2,但不适用于 Python3。我应该改变什么?

问题描述

在以下语句中,dictTimeFC 的日期格式为 YYYY-mm。

for key,val in sorted(dictTimeFC.items(), key = lambda(x): map(int, x[0].split('-'))):

它以正确的顺序显示日期,即

2020-9
2020-10

此代码适用于 Python2,但不适用于 Python3。它给出错误“SyntaxError:无效语法”

我需要使用 Python3 执行程序,因为有些代码只能使用 Python3。请建议如何更改上述语句以使其适用于 Python3。

标签: pythonpython-3.xsortingdate

解决方案


您需要更新 lambda 参数语法[PEP-3113]并将 map 函数的结果从可迭代转换为列表/元组以允许比较[2to3 Migration]

key = lambda(x): map(int, x[0].split('-'))

key = lambda x: tuple(map(int, x[0].split('-')))

推荐阅读