我应该如何重写这个lambda以符合Python3标准?
top10_popular = [k for (k, (v1, v2)) in sorted(site_freq_150users.items(),
key=lambda (k, (v1, v2)): v2, reverse=True)[:10]
我已经读到这与删除Python3中的元组解包有关,但现在我确定如何正确地重写它。
提前致谢。
答案 0 :(得分:0)
通过直接命名所有顶级参数,只需使参数列表变平(即1维),而无需解压缩它们。稍后在返回表达式中解压缩。
在您的示例中,您可以通过说v = (v1, v2)
然后像这样创建lambda来执行此操作:
lambda k, v : v[1]
更新:以上无效。相反,您必须将整个项目放入参数中,然后从中提取键和值:
lambda item : item[1][1]