我的排序有问题。想要对列表进行排序
['asd_1qwer', 'asd_14qwer', 'asd_26qwer', 'asd_5qwer']
Run Code Online (Sandbox Code Playgroud)
我发现我需要在 1 和 5 上加零。
['asd_01qwer', 'asd_05qwer', 'asd_14qwer', 'asd_26qwer']
Run Code Online (Sandbox Code Playgroud)
不知道如何将其添加到正确的位置,因为asd不是静态的。
list = ['asd_14qwer','asd_5qwer','asd_26qwer','asd_1qwer']
list.sort()
for i in list:
tempo = i.split('_')[-1].split('qwer')[0]
if len(tempo) == 1:
i[:4] + '0' + i[4:]
Run Code Online (Sandbox Code Playgroud)
编辑需要将 0 添加到 1-9 并qwer在所有标签上列出常量。
实际上,如果您的目标是根据字符串的数字部分对列表进行排序,则不需要对这些数字部分进行零填充,您只需要提供将sort()数字部分提取为整数的 key 函数:
l = ['asd_14qwer','asd_5qwer','asd_26qwer','asd_1qwer']
l.sort(key=lambda x: int(x.split('_')[-1].rstrip('qwer')))
Run Code Online (Sandbox Code Playgroud)
请注意,此代码不依赖于前面的字符_,仅依赖于_和之间的数字部分qwer。
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |