Python排序字​​符串数组,里面有整数

Bin*_*ngh 1 python list

我如何使用python对列表格式进行排序

format=["12 sheet","4 sheet","48 sheet","6 sheet", "busrear", "phonebox","train"]
Run Code Online (Sandbox Code Playgroud)

像这样

format =["4 sheet", "6 sheet", "12 sheet", "48 sheet", "busrear, "phonebox", "train"]
Run Code Online (Sandbox Code Playgroud)

编辑:如果数组是列表列表,那么我们怎么能像这样做

format=[[1L, u'12 sheet', 0],[2L, u'4 sheet', 0], [3L, u'48 sheet', 0], [4L, u'6 sheet', 0 [5L, u'Busrear', 0], [6L, u'phonebox', 0], [7L, u'train', 0]]

fal*_*tru 5

>>> fmts =["12 sheet","4 sheet","48 sheet","6 sheet", "busrear", "phonebox","train"]
>>> fmts.sort(key=lambda x: (int(x.split(None, 1)[0]) if x[:1].isdigit() else 999, x))
>>> fmts
['4 sheet', '6 sheet', '12 sheet', '48 sheet', 'busrear', 'phonebox', 'train']
Run Code Online (Sandbox Code Playgroud)

format是一个内置功能.不要将它用作变量名.它将影响内置函数.

  • @thefourtheye,使用`x [:1]`来防止IndexError. (3认同)