Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 颠倒列表的顺序,然后按字典顺序排序_Python - Fatal编程技术网

Python 颠倒列表的顺序,然后按字典顺序排序

Python 颠倒列表的顺序,然后按字典顺序排序,python,Python,我需要做一个代码,对单词列表进行排序,并将它们从反面按字典顺序排列。例如,给定列表[“harry”,“harra”,“harrb”]我需要一种方法来反转每个单词,使列表变成[“yrrah”,“arrah”,“brrah”]。然后我需要按字典顺序对其排序,并将其反转回原始顺序。因此它看起来像[“harra”,“harrb”,“harry”]。我从“ifile”文件中提取单词,但对于这段代码,我只对字母数为“n”的单词进行排序 以下是我目前的代码: def getRhymeSortedCount(n

我需要做一个代码,对单词列表进行排序,并将它们从反面按字典顺序排列。例如,给定列表
[“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个字母的单词?

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

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

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

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

使用一个简单的lambda函数-

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

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

print(arr)
输出-

['harra', 'harrb', 'harry']

使用一个简单的lambda函数-

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

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

print(arr)
输出-

['harra', 'harrb', 'harry']

感觉就像你希望有人帮你做家庭作业一样——所以这里有一个答案,你需要稍微打开包装才能理解

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)表示x在x的列表中的x,如果表达式为]
  • 可以将字符串切分为字符列表(反之亦然)
  • 排序(mylist)返回列表的排序版本
  • 在这里查看reversed(mylist),即使它在这里没有使用。您可以嵌套这些:reversed(sorted(mylist))-neat!(但在我的解决方案中没有使用)

(哦,我喜欢lambda的答案)

感觉你希望有人帮你做家庭作业-所以这里有一个答案,你需要稍微打开包装才能理解

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)表示x在x的列表中的x,如果表达式为]
  • 可以将字符串切分为字符列表(反之亦然)
  • 排序(mylist)返回列表的排序版本
  • 在这里查看reversed(mylist),即使它在这里没有使用。您可以嵌套这些:reversed(sorted(mylist))-neat!(但在我的解决方案中没有使用)

(哦,我喜欢lambda的答案)

基本上,它从每个单词的末尾开始按字典顺序排列,但仍然将它们作为原始列表中的单词列出。因此,它将单词反转,排序,然后再反转。基本上,它从每个单词的末尾开始按字典顺序排列,但仍然将它们作为原始列表中的单词列出。因此,它将单词反转,对它们进行排序,然后再将它们颠倒过来。我需要它来显示一个完整的单词列表,该列表包含21000个单词。因此,不要写单词列表=[“harry”,“harra”,“harrb”]我应该写什么?这取决于单词的位置。如果你从一个文件中获取它们,那么请阅读该文件并将它们放入一个列表。@Expertenthemaking 22你已经有了在你自己的问题中创建列表的代码。而不是你的代码?我需要它来查找一个有21000个单词的完整单词列表。因此,不要写单词列表=[“harry”“harra”,“harrb”]我应该写什么?这取决于单词的位置。如果你从文件中获取它们,那么请阅读文件并将它们放入列表中。@Expertenthemaking 22你已经有了在你自己的问题中创建列表的代码。不是你的代码?这会让我得到正确的顺序,但我还需要它对有“n”的单词进行排序“字母数。我的len语句的位置是否错误?为此,您必须描述ifile是什么。您应该问一个单独的问题。这会让我获得正确的排序,但我还需要它对字母数为“n”的单词进行排序。我的len语句的位置是否错误?为此,您必须描述什么是
ifile
。您应该问一个单独的问题。