0

作为 Python 的初学者,我最近因使用特定标准对嵌套列表进行排序的问题而陷入困境。我有一个这样的嵌套列表:

nestedList=[['R2D2','1path1','1path2'], 
            ['R3A1','2path1','2path2'],
            ['R15L2','3path1','3path2']]

我希望这个列表按每个嵌套列表中的第一个字符串排序。结果将如下所示:

nestedList=[['R15L2','3path1','3path2'],
            ['R3A1','2paht1','2path2'],
            ['R2D2','1path1','1path2']]

目前我的解决方案是只使用带有反向参数的排序函数:

nestedList.sort(reverse=True)

我不确定这是否安全,因为我不希望它也按第二个字符串对列表进行排序。

我怎么能只按第一个字符串对其进行排序?(例如“R15L2”、“R3A1”等)

非常感谢你的帮助!

4

2 回答 2

5

您想根据键排序(键是列表的第一个元素):

nestedList.sort(key=lambda x: x[0])

或者

import operator as op

nestedList.sort(key=op.itemgetter(0))
于 2013-04-09T09:58:47.343 回答
1
 a = [['3f','2f','5a'],['5a','0r','7v'],['4r','58v','5l']]
>>> a
[['3f', '2f', '5a'], ['5a', '0r', '7v'], ['4r', '58v', '5l']]
>>> a.sort()
>>> a
[['3f', '2f', '5a'], ['4r', '58v', '5l'], ['5a', '0r', '7v']]
>>> a.sort(reverse=True)
>>> a
[['5a', '0r', '7v'], ['4r', '58v', '5l'], ['3f', '2f', '5a']]
>>> 
于 2013-04-09T11:13:11.553 回答