词典序序中表的倒序与排序

2024-10-01 09:39:24 发布

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

我需要做一个代码,把一系列单词从相反的顺序排列成字典。例如,给定列表["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个字母的单词?在


Tags: 代码列表len字典排序顺序字母单词
3条回答

感觉你想有人帮你做家庭作业-所以这里有一个答案,你必须打开一点了解

word_list = ['harry', 'harra', 'harrb', "ignore_me"]
[y[::-1] for y in sorted([ x[::-1] for x in word_list if len(x) == 5])]

在这里要学习的东西:

  • 列表理解[f(x)for x in list_of_xs if expression]
  • 可以将字符串切片为字符列表(也可以反过来)
  • sorted(mylist)返回列表的排序版本
  • 当你在这里检查反向(mylist),即使它没有在这里使用。你可以嵌套这些:反转(sorted(mylist))-整洁!(但在我的解决方案中没有使用)

(哦,我喜欢兰博达的回答)

使用一个简单的lambda函数-

arr = ["harry","harra", "harrb"]

arr.sort(key = lambda x : x[::-1])

print(arr)

输出-

^{pr2}$

指定要排序为反转字符串的键

word_list = ["harry","harra", "harrb"]
word_list.sort(key=lambda str: str[::-1])

相关问题 更多 >