Sort results non-lexicographically?

后端 未结 5 1731
轮回少年
轮回少年 2021-02-19 21:29

I\'m trying to display some results in a human-readable way. For the purposes of this question, some of them are numbers, some are letters, some are a combination of the two.

5条回答
  •  南笙
    南笙 (楼主)
    2021-02-19 22:21

    You could split up the list, sort, then put it back together. Try something like this:

    numbers = sorted(int(i) for i in input_ if i.isdigit())
    nonnums = sorted(i for i in input_ if not i.isdigit())
    sorted_input = [str(i) for i in numbers] + nonnums
    

    You'll have to do something more complicated than isdigit if you can have non-integers.

    If this doesn't cover your "some are a combination of the two," please elaborate what that means and what output you expect from them.

    (Not tested, but should convey the idea.)

提交回复
热议问题