pythonbasic:如何仅通过考虑数字对列表进行排序?

2024-10-01 07:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我承认我不知道如何给这个问题一个更好的标题。:—(有人对这个题目有更好的想法吗?你知道吗

我的问题是:

我要排序此列表:

a = ['at10', 'at11', 'at12', 'at13', 'at9', 'at1', 'at8']

清单上的每一项都以两个字母开头,并有一些数字。你知道吗

预期结果如下。列表按数字排序。你知道吗

['at1', 'at8', 'at9', 'at10', 'at11', 'at12', 'at13']

我尝试了sorted(a)和它的许多key设置。但我没有得到结果。有人能帮帮我吗?提前谢谢!你知道吗


Tags: key标题列表排序字母数字sorted题目
2条回答

因为您的数据有一个模式(上面的索引2是一个数字),所以您可以通过定义下面的getnum(这是单向)函数来获得每个数字。你知道吗

在此之后,可以根据这些值使用sorted函数(按字符串中的数字排序)。你知道吗

a = ['at10', 'at11', 'at12', 'at13', 'at9', 'at1', 'at8']

def getnum(s):
    num = int(s[2:]);
    return num

b=sorted(a, key = getnum)
print(b)
sorted(a, key=lambda x:int(x[2:]))
#['at1', 'at8', 'at9', 'at10', 'at11', 'at12', 'at13']

相关问题 更多 >