【发布时间】:2013-03-31 16:46:15
【问题描述】:
作为 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”等)
非常感谢您的帮助!
【问题讨论】:
-
我的方法并没有真正起作用......例如,将 '1path1' 更改为 '5path1' 不会得到预期的结果...... :(
-
我不明白你想要的结果。
'R3A1'大于'R2D2'但在您的排序列表中排在它之前? -
hmm...我在考虑R15L2>R3A1>R2D2...也许这比我预期的要复杂...
-
如果要按数值排序,则必须先获取数值。将
"R15L2"转换成('R', 15, 'L', 2)就可以正确排序了。
标签: python list sorting nested