首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用冒泡排序对Python 3中的列表进行排序和子排序

如何使用冒泡排序对Python 3中的列表进行排序和子排序
EN

Stack Overflow用户
提问于 2019-02-28 01:51:12
回答 2查看 704关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-28 01:53:36

使用带有两个键的sortedlist.sort

代码语言:javascript
复制
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']
票数 2
EN

Stack Overflow用户

发布于 2019-02-28 01:54:49

尝试如下:

代码语言:javascript
复制
mylist=["a20", "b2", "a1", "c1", "b1", "a10", "b3", "c9"]
sorted_list=[]
def fun(l):
    minn = l[0]
    for i in l:
        if i[0]<minn[0]:
            minn = i
        elif i[0] == minn[0]:
            if int(i[1:])<int(minn[1:]):
                minn = i
    l.remove(minn)
    return minn

for i in range(len(mylist)):
    sorted_list.append(fun(mylist))
print(sorted_list)

结果:

代码语言:javascript
复制
['a1', 'a10', 'a20', 'b1', 'b2', 'b3', 'c1', 'c9']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54917199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档