python - 如何使用冒泡排序在 Python 3 中对列表进行排序和子排序

标签 python arrays sorting

我正在为我正在学习的类(class)解答一个额外问题。假设我们有一个列表,例如 mylist=[a1, b2, a3, c1, b1, a5, b3, c9] 。我想使用基本的Python而不导入任何东西。我想首先按字母顺序对列表进行排序,然后对于每个字母,我按数字排序。因此,结果将是列表 [a1, a3, a5, b1, b2, b3, c1, c9]。我正在对数字实现简单的冒泡排序,但是如何对字母进行子排序(或者反之亦然?)

最佳答案

使用带有两个键的sortedlist.sort:

my_list = ["a1", "b2", "a3", "c1", "b1", "a5", "b3", "c9"]
sorted(my_list, key=lambda x:(x[0], int(x[1:])))
# ['a1', 'a3', 'a5', 'b1', 'b2', 'b3', 'c1', 'c9']

关于python - 如何使用冒泡排序在 Python 3 中对列表进行排序和子排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54917199/

相关文章:

c - SPOJ - 好斗的奶牛, "largest minimum distance"术语的含义是什么?

c - 结构体和多维数组

python - 如何从 numpy 中的索引数组创建 bool 数组?

vb.net - 将空白条目排序到 LINQ 查询的底部

python - 通过网络发送字符串

python - 如果你通过 Anaconda 安装了 Python,如何通过 Windows cmd 安装模块?

python、pandas、sqlalchemy - 在查询中转义的符号

python - 如何编写接收字符串消息并返回带分页的字符串消息列表的函数

algorithm - 将 Haskell 反转计数器移植到 Scala

c# - List.Sort(自定义排序...)