按内部数字排序字符串

Vic*_*res 4 python string int

我想知道如何按内部数字对字符串进行排序.

例如,我有:

hello = " hola %d" % (number_from_database)
bye = "adios %d" % (number_from_database_again)
Run Code Online (Sandbox Code Playgroud)

我想用数字对它们进行排序,即使它发生了变化.

And*_*den 10

您可以传递密钥进行排序:

sorted(l, key=lambda x: int(re.sub('\D', '', x)))
Run Code Online (Sandbox Code Playgroud)

例如:

In [1]: import re

In [2]: l = ['asdas2', 'asdas1', 'asds3ssd']

In [3]: sorted(l, key=lambda x: int(re.sub('\D', '', x)))
Out[3]: ['asdas1', 'asdas2', 'asds3ssd']
Run Code Online (Sandbox Code Playgroud)

在哪里re.sub('\D', '', x)替换除数字之外的所有内容.