-1

我想根据每个子数组的第一个值对 python 数组进行排序 [[1437510001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016380001', 'loc-stuff-39400016380001'], [1437500001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016370001'] 39400016370001'], [1437490001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016360001', 'loc-stuff-39400016360001'], [1437480001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016350001', 'loc-stuff-39400016350001'], [1437520001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016390001', ' loc-stuff-39400016390001']]

我处理的这些数组通常最多 200 个。

基本上我需要做的是从最大到最小值排序。

D

4

2 回答 2

1

在 Python 中,序列是按字典顺序比较的,这意味着“首先比较前两项,如果它们不同,则确定比较的结果;如果它们相等,则比较接下来的两项,依此类推,直到任一序列筋疲力尽的”。

因此,在您的情况下,您可以简单地使用对list.sort. 由于您想从大到小排序,请使用reverse=True关键字 arg:

lst.sort(reverse=True)

这会对列表进行适当的排序。如果您想lst保持不变并返回一个新的排序列表,请使用:

sorted_list = sorted(lst, reverse=True)
于 2013-06-26T03:44:08.973 回答
0

使用list.sort.

>>> mylist = [[1437510001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016380001', 'loc-stuff-39400016380001'], [1437500001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016370001', 'loc-stuff-39400016370001'], [1437490001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016360001', 'loc-stuff-39400016360001'], [1437480001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016350001', 'loc-stuff-39400016350001'], [1437520001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016390001', 'loc-stuff-39400016390001']]
>>> mylist.sort()
>>> print mylist
[[1437480001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016350001', 'loc-stuff-39400016350001'], [1437490001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016360001', 'loc-stuff-39400016360001'], [1437500001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016370001', 'loc-stuff-39400016370001'], [1437510001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016380001', 'loc-stuff-39400016380001'], [1437520001L, 'UNLOCK_SRV_BIND_ACCOUNT-39400016390001', 'loc-stuff-39400016390001']]
于 2013-06-26T02:01:06.987 回答