python实现字符串列表排序?

Python029

python实现字符串列表排序?,第1张

a = ['b', 'a', 'c', 'ab', 'aa', 'aaa']

a.sort(key=lambda x: str(len(x)) + x)

print(a)

#['a', 'b', 'c', 'aa', 'ab', 'aaa']

你的列表A现在不就是按所含数字从大到小排列的吗?

不过,我还是用正则表达式的方法帮你排了一下序,如果你要数字从小到大排序,只要把alist.sort(key=sort_key,reverse=True)改成alist.sort(key=sort_key,reverse=False)就行了.

完整的Python程序如下

import re

def sort_key(s):

    if s:

        try:

            c = re.findall('\d+$', s)[0]

        except:

            c = -1

        return int(c)

def strsort(alist):

    alist.sort(key=sort_key,reverse=True)

    return alist

A=['abc 15','abd 13','abe 9','abf 6','abg 2']

print(strsort(A))