我有一个看起来像这样的列表-
answer = ['toy3', 'toy4', 'toy1']
我想根据玩具中的数字(升序)对它进行排序。所以列表应该看起来像这样-
answer = ['toy1', 'toy3', 'toy4']
答案 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']