在Python 3中编写易读的sortkeys而不使用tuple参数解压缩

时间:2016-12-17 19:25:50

标签: python python-2.7 python-3.x

假设我有一个集合events,其中包含长度为2的元组,用于存储一些任意信息,例如一天和一个事件。

在Python 2中,我可以编写非常易读的

sortkey = lambda (day, event): some_function(day)
events_sorted = sorted(events, key=sortkey)

在Python 3中,第一行将引发SyntaxError,因为已删除了元组参数解包。我不能使用两个参数lambda函数作为键,所以我不得不求助于更不易读的

sortkey = lambda day_and_event: some_function(day_and_event[0])

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用两行函数而不是lambda表达式:

def sortkey(day_and_event):
    day, event = day_and_event
    return some_function(day)