根据项目中的编号对列表中的项目进行排序

时间:2019-12-08 16:19:11

标签: python list

我有一个看起来像这样的列表-

answer = ['toy3', 'toy4', 'toy1']

我想根据玩具中的数字(升序)对它进行排序。所以列表应该看起来像这样-

answer = ['toy1', 'toy3', 'toy4']

3 个答案:

答案 0 :(得分:3)

使用https://quasar.dev/start/vue-cli-plugin的关键参数:

import re

numbers = re.compile('\d+$')

answer= ['toy3','toy4','toy1']

result = sorted(answer, key=lambda x: int(numbers.search(x).group()))
print(result)

输出

['toy1', 'toy3', 'toy4']

想法是提取末尾的数字组并转换为整数,然后使用此值作为排序的键。

答案 1 :(得分:0)

您可以将函数作为键传递给sorted

>>> sorted(answer, key=lambda x: x[-1])
['toy1', 'toy3', 'toy4']

答案 2 :(得分:0)

假定整数在每个字符串中的toy单词之后。

answer= ['toy3','toy4','toy1','toy10','toy-1','toy200']
result = sorted(answer, key=lambda x: int(x[3:]))
print(result)

输出:

['toy-1', 'toy1', 'toy3', 'toy4', 'toy10', 'toy200']