【发布时间】:2018-01-12 06:39:53
【问题描述】:
我的 python2.7 代码包含 lambda 排序技术,可根据定义的顺序对获取的元素进行排序。昨天我从 python 2.7 迁移到 python 3.6,问题是迁移后我写 lambda 排序的行在程序中抛出错误。对于从 py2 到 py3 的迁移,我使用了 lib2to3。我相信这是 py3 中某些语法不匹配的原因,但无法弄清楚。错误日志如下-
My code Fragment:
property_sort_order = ['field', 'rename', 'selected', 'description']
node_property_value_list = []
node_property_value_list = node_property_value[nodekey]
node_property_value_list = [OrderedDict(
sorted(item.iteritems(), key=lambda (k, v): property_sort_order.index(k)))
for item in node_property_value_list]
for item in node_property_value_list]
#print node_property_value_list
node_property_value[nodekey] = node_property_value_list
Errror:
for item in node_property_value_list]
TypeError: <lambda>() missing 1 required positional argument: 'v'
【问题讨论】:
标签: python python-3.x sorting lambda