我需要创建一个代码来对单词列表进行排序,并将它们从反向排列成字典顺序。例如,给定列表["harry", "harra", harrb"]
我需要一种方法来反转每个单词,因此列表变为["yrrah", "arrah","brrah"]
。然后我需要按字典顺序排序并将其反转回原来的顺序。所以它看起来像["harra", "harrb", "harry"]
。我从一个文件中取词' ifile'但对于这段代码,我只订购带有一定数量字母的单词" n"。
到目前为止,这是我的代码:
def getRhymeSortedCount(n,ifile,file):
word_list = []
for word in ifile:
if len(word) == n:
word_list.append(word.strip())
arr = word_list
arr.sort(key = lambda x : x[::-1])
ofile.write("\n".join(word_list))
它正确地按照他们的最后一个字母对单词进行排序,但是没有用字母数字=" n" 如何更改我的len语句只能抓取带有n个字母的单词?
答案 0 :(得分:6)
指定要排序为反向字符串的键
word_list = ["harry","harra", "harrb"]
word_list.sort(key=lambda str: str[::-1])
答案 1 :(得分:2)
使用简单的lambda函数 -
arr = ["harry","harra", "harrb"]
arr.sort(key = lambda x : x[::-1])
print(arr)
输出 -
['harra', 'harrb', 'harry']
答案 2 :(得分:0)
感觉你想让别人为你做功课 - 所以这里有一个你必须解开一点才能理解的答案
word_list = ['harry', 'harra', 'harrb', "ignore_me"]
[y[::-1] for y in sorted([ x[::-1] for x in word_list if len(x) == 5])]
这里要学习的东西:
(哦,我喜欢lambda答案)