开发者社区> 问答> 正文

如何对列表进行排序以使其看起来像[1,A,2,B,3,C,...]

我想对如下所示的列表进行排序:[''3','6','B','2','1','C','A'] 1','A','2','B','3','C','6']

提前致谢!

问题来源:stackoverflow

展开
收起
is大龙 2020-03-21 12:03:18 427 0
1 条回答
写回答
取消 提交回答
  • 你可以试试看

    l=['3', '6', 'B', '2', '1', 'C', 'A']
    sorted(['3', '6', 'B', '2', 'A', 'C', '1'],key=lambda x:(int(x),0) if x.isnumeric() else ((ord(x)-64)%26,1))
    # ['1', 'A', '2', 'B', '3', 'C', '6']
    

    因为数字具有更高的优先级,所以我为数字和字母((ord(x)-64)%26,1)设置了(int(x),0)来打破平局。

    回答来源:stackoverflow

    2020-03-21 12:03:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载