我似乎无法找到有关如何正确排序这样的列表的任何信息.我的列表看起来像这样
["1. Banana", "2. Pear", "11. Apple", "5. Grapes", "4. Orange"]
Run Code Online (Sandbox Code Playgroud)
使用sorted()离开我与以下
['1. Banana', '11. Apple', '2. Pear', '3. Orange', '4. Grapes']
Run Code Online (Sandbox Code Playgroud)
我希望它能像这样出来
['1. Banana', '2. Pear', '3. Orange', '4. Grapes', '11. Apple']
Run Code Online (Sandbox Code Playgroud)
list.sort(key=lambda k: k["key"])
Run Code Online (Sandbox Code Playgroud)
按.分隔的第一个int值排序为排序key:
sorted(lst, key=lambda x: int(x.split('.')[0]))
Run Code Online (Sandbox Code Playgroud)
例:
In [20]: lst = ["1. Banana", "2. Pear", "11. Apple", "5. Grapes", "4. Orange"]
In [21]: sorted(lst, key=lambda x: int(x.split('.')[0]))
Out[21]: ['1. Banana', '2. Pear', '4. Orange', '5. Grapes', '11. Apple']
Run Code Online (Sandbox Code Playgroud)