Fed*_*llo 31 python arrays sorting list multidimensional-array
我有这样一个数组:
[['G', 10], ['A', 22], ['S', 1], ['P', 14], ['V', 13], ['T', 7], ['C', 0], ['I', 219]]
Run Code Online (Sandbox Code Playgroud)
我想根据第二个元素按降序排序.理想的输出是:
[['I', 219], ['A', 22], ['P', 14], ... ]
Run Code Online (Sandbox Code Playgroud)
fal*_*tru 53
list.sort
,sorted
接受可选key
参数.key
function用于生成比较密钥.
>>> sorted(lst, key=lambda x: x[1], reverse=True)
[['I', 219], ['A', 22], ['P', 14], ['V', 13], ['G', 10], ...]
>>> sorted(lst, key=lambda x: -x[1])
[['I', 219], ['A', 22], ['P', 14], ['V', 13], ['G', 10], ...]
>>> import operator
>>> sorted(lst, key=operator.itemgetter(1), reverse=True)
[['I', 219], ['A', 22], ['P', 14], ['V', 13], ['G', 10], ...]
Run Code Online (Sandbox Code Playgroud)
小智 11
使用 itemgetter
from operator import itemgetter
a = [[1, 3, 5], [2, 511, 7], [17, 233, 1]]
a = sorted(a, key=itemgetter(1))
Run Code Online (Sandbox Code Playgroud)
输出:[[1,3,5],[17,233,1],[2,511,7]]
itemgetter
也可用于按多个子阵列排序.
小智 7
做这个:
在第二列的基础上对多维数组进行降序排序:
list_name.sort(key=lambda x:x[1],reverse=True)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46271 次 |
最近记录: |