如何在python中对字母数字列表进行排序

Sha*_*nky 3 python sorting list

我有一个清单

a = [["1", "ok", "na"], ["15", "asd", "asdasd"], ["100", "uhu", "plo"], ["10", "iju", "tlo"], ["ISC_1", "des", "det"], ["12", "asd", "assrg"], ["ARF", "asd", "rf"]]
Run Code Online (Sandbox Code Playgroud)

我想要将此列表排序如下:

[['1', 'ok', 'na'], ['10', 'iju', 'tlo'], ['12', 'asd', 'assrg'], ['15', 'asd', 'asdasd'], ['100', 'uhu', 'plo'], ['ARF', 'asd', 'rf'], ['ISC_1', 'des', 'det']]
Run Code Online (Sandbox Code Playgroud)

我用过a.sort()

结果如下:

[['1', 'ok', 'na'], ['10', 'iju', 'tlo'], ['100', 'uhu', 'plo'], ['12', 'asd', 'assrg'], ['15', 'asd', 'asdasd'], ['ARF', 'asd', 'rf'], ['ISC_1', 'des', 'det']]
Run Code Online (Sandbox Code Playgroud)

请帮我在这种情况下如何排序.

Neo*_*Neo 6

您可以使用key命名参数.
它接受一个函数,该函数返回排序函数应该比较项目的值.

sorted(a, key = lambda l: int(l[0]))
Run Code Online (Sandbox Code Playgroud)

  • 您想对ISC做什么?应该最后还是首先?如果它应该最后出现:a.sort(key = lambda l:int(l [0])如果l [0] .isnumeric()否则为99999) (2认同)