Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用数字对数字排序字符串列表_Python_List_Sorting - Fatal编程技术网

Python 用数字对数字排序字符串列表

Python 用数字对数字排序字符串列表,python,list,sorting,Python,List,Sorting,我有一个列表,如下所示: mylist=['item_11'、'item_0'、'item_1'、'item_2'、'item_9'、'item_10'、'item_none'] 我想按数字排序,但以“item_none”开头,因此结果如下所示: ['item_none'、'item_0'、'item_1'、'item_2'、'item_9'、'item_10'、'item_11'] 我找到了一种适合我的方法,但它使用两种列表理解将“item_none”重命名为“item_-1”并返回。我想

我有一个列表,如下所示:

mylist=['item_11'、'item_0'、'item_1'、'item_2'、'item_9'、'item_10'、'item_none']
我想按数字排序,但以“item_none”开头,因此结果如下所示:

['item_none'、'item_0'、'item_1'、'item_2'、'item_9'、'item_10'、'item_11']
我找到了一种适合我的方法,但它使用两种列表理解将“item_none”重命名为“item_-1”并返回。我想知道是否有一种更优雅的方法可以做到这一点?谢谢你的建议

newlist=[[x中的'none'为'item\-1',否则x为mylist中的x]
排序(key=lambda x:int(x.split(“”“)[-1]))
finallist=['item_none'if'-1'在x中,否则x代表x在newlist中]

如果列表中没有
项,则可以将键设置为
-1

In [8]: mylist = ['item_11', 'item_0', 'item_1', 'item_2', 'item_9', 'item_10', 'item_none']

In [9]: mylist.sort(key=lambda x: -1 if x.split("_")[-1] == "none" else int(x.split('_')[-1]))

In [10]: mylist
Out[10]: ['item_none', 'item_0', 'item_1', 'item_2', 'item_9', 'item_10', 'item_11']

您可以编写一个键函数,将
None
解析为
float(“-inf”)
或类似的内容。