如何在python中进行分层排序?

因此,我有一个2D数据数组,它们是从excel电子表格中获取的,该电子表格目前是根据具有关键性数据的列进行排序的。


#rows contains my data that I'm sorting, it's a 2D array

searchdict = dict(Critical=1, High=2, Medium=3, Low=4)

rows.sort(key=lambda row: searchdict.get(row[11], 5))

如果该列与该列相关,我想根据另一列进行排序,有人知道该如何处理吗?在此先感谢您的帮助。


仅供参考:另一列包含数值数据


慕慕森
浏览 214回答 3
3回答

倚天杖

在密钥中使用元组。通常认为此方法比连续执行两种操作更“ Pythonic”。key=lambda row: (searchdict.get(row[11], 5), row[other_column]))

青春有我

最好的选择是将key与python的元组排序一起使用。#rows contains my data that I'm sorting, it's a 2D arraysearchdict = dict(Critical=1, High=2, Medium=3, Low=4)rows.sort(key=lambda row: (searchdict.get(row[11], 5), searchdict.get(row[<secondary column index here>], 5)))这是基于以下事实:在比较中,元组中最左边的元素被认为是更重要的,在此处进行了演示:>>> (6, 5) > (5, 6)True>>> (6, 5) > (6, 4)True>>> (6, 5) > (6, 6)False>>> (2, 1, 1) > (1, 1000, 1000)True&nbsp;

吃鸡游戏

使用元组作为排序键函数的返回值:rows.sort(key=lambda row: (searchdict.get(row[11], 5), row[17]))Python首先对索引为0的项目进行排序,然后对索引为1的项目进行排序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python