yat*_*atu 4 python sorting list
说我有以下列表:
l = ['erget', 'a1', 'm1', 'aa', 'ae', 'mea', 'erge4', 'erge7', 'm2', 'me2', 'mei']
Run Code Online (Sandbox Code Playgroud)
当使用sorted()包含数字的字符串列表时,数字位于字母之前,因此在这种情况下它将产生:
sorted(l)
['a1', 'aa', 'ae', 'erge4', 'erge7', 'erget', 'm1', 'm2', 'me2', 'mea', 'mei']
Run Code Online (Sandbox Code Playgroud)
我已经看到了一些像这样的答案如何使字母出现在数字之前,但仅限于一个数字或字母.是否可以这样做,也是使用一些key在sorted()当数字可以在字符串中的任何地方?所以预期产量:
['aa', 'ae', 'a1', 'erget', 'erge4', 'erge7', 'mea', 'mei', 'me2', 'm1', 'm2']
Run Code Online (Sandbox Code Playgroud)
您可以使用sorted元组列表作为自定义键:
L = ['erget', 'a1', 'm1', 'aa', 'ae', 'mea', 'erge4', 'erge7', 'm2', 'me2', 'mei']
res = sorted(L, key=lambda x: [(i.isdigit(), i) for i in x])
# ['aa', 'ae', 'a1', 'erget', 'erge4', 'erge7', 'mea', 'mei', 'me2', 'm1', 'm2']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |