【发布时间】:2019-01-18 10:20:06
【问题描述】:
我正在尝试解决一个问题,我必须按字符串的长度以及字符串中的最后一个字符对字符串列表进行排序。如果字符串长度相同,最后一个字符相同,则应按倒数第二个字符排序,依此类推。
我有这段代码,但我不清楚为什么它不能按我的意愿工作。有人能指出我正确的方向吗?
我的代码:
import sys
word_lists = [line.split(' ') for line in ' '.join([x.strip() for x in sys.stdin.readlines()]).split(' ')]
for i in range(0, len(word_lists)):
word_lists[i] = sorted((word_lists[i]), key=lambda x: (x[:-1], len(x)))
输入:
apple
banana
grape
kiwi
pear
airplane
bicycle
boat
car
输出:
[['apple', 'banana', 'grape', 'kiwi', 'pear'], ['airplane', 'bicycle', 'boat', 'car']]
预期输出:
[['banana', 'apple', 'grape', 'kiwi', 'pear'], ['bicycle', 'airplane', 'car', 'boat']]
【问题讨论】:
-
您似乎想比较反转的字符串。目前尚不清楚应该如何考虑长度(取决于您书中的“以及”的含义)。大概您需要将长度用作主键,将反向字符串用作决胜局。如果是这样,你为什么要在飞机前骑自行车?
标签: python string list sorting