按多列排序时,为每列设置升序降序

zty*_*tyh 1 python sorting list

我有一个列表d要排序。我首先按第一列排序。如果有关系,那么我继续使用第二列进行排序。假设我想按升序按第一列排序,但按降序按第二列排序。升为默认值,使用该reverse键,我认为以下内容应能工作。

sorted(d,key=lambda x: (x[0],x[1]),reverse=(False,True))
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。它给出以下错误。

    reverse=(False,True))

TypeError: an integer is required (got type tuple)
Run Code Online (Sandbox Code Playgroud)

因此,如果我没有正确执行操作,该如何解决?还是这样做的方式完全不同?对此的建议将有所帮助。

我的问题确实存在重复,但已经有有趣的回答,因此我想保留它。

raf*_*elc 5

可能会过大,但是..)使用pandas和args ascending=[True, False]

d = [[1,2], [2,2], [2,3], [2,4], [3,1]]
df=  pd.DataFrame(d)

sorted_values = df.sort_values(by=[0,1], ascending=[True,False])
sorted_list = sorted_values.agg(list,1).tolist()

[[1, 2], [2, 4], [2, 3], [2, 2], [3, 1]]
Run Code Online (Sandbox Code Playgroud)