因此,我有一个2D数据数组,它们是从excel电子表格中获取的,该电子表格目前是根据具有关键性数据的列进行排序的。#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))如果该列与该列相关,我想根据另一列进行排序,有人知道该如何处理吗?在此先感谢您的帮助。仅供参考:另一列包含数值数据
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
在密钥中使用元组。通常认为此方法比连续执行两种操作更“ Pythonic”。
key=lambda row: (searchdict.get(row[11], 5), row[other_column]))
青春有我
TA贡献1784条经验 获得超8个赞
最好的选择是将key与python的元组排序一起使用。
#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), 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
吃鸡游戏
TA贡献1829条经验 获得超7个赞
使用元组作为排序键函数的返回值:
rows.sort(key=lambda row: (searchdict.get(row[11], 5), row[17]))
Python首先对索引为0的项目进行排序,然后对索引为1的项目进行排序。
添加回答
举报
0/150
提交
取消