python - 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。
解决方案
您需要更新 lambda 参数语法[PEP-3113]并将 map 函数的结果从可迭代转换为列表/元组以允许比较[2to3 Migration]。
key = lambda(x): map(int, x[0].split('-'))
至
key = lambda x: tuple(map(int, x[0].split('-')))
推荐阅读
- sql - 使用连接从另一个表更新表中的列
- c# - 实体框架:类型“yyyyyy”上不存在所需的属性“xxxxxx”
- jquery - 使用 Ajax/jQuery 读取大文本文件
- ios - Swift如何更改背景颜色和按钮边框
- scala - 在 Spark 的 where 子句中将多个条件作为字符串传递
- cakephp - CakePHP 3 DISTINCT 对生成的查询没有影响
- javascript - 如何使用javascript检查string1中是否包含一个或多个字符串
- react-native - 我们可以在 React Native 中只设置 View 的一侧阴影吗?
- angular - Angular 5 HttpClient Access-Control-Allow-Origin 标头多值
- twitter-bootstrap - 引导多选获取选定值