排序编号列表

0 python sorting list

我似乎无法找到有关如何正确排序这样的列表的任何信息.我的列表看起来像这样

["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)

hee*_*ayl 5

.分隔的第一个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)

  • @marmeladze没问题.我们可能在同一时间写作; 我想,我的提前了一点.它发生:) (2认同)