首页 > 解决方案 > 在文本文件中按降序对单词进行排序

问题描述

我正在尝试一个生成填字游戏的项目。这是我第一次学习/学习python。所以基本上我想先按长度对单词进行排序,然后取出第一个单词并将其放在网格/板上。但是当我想打开名为“填字游戏”的文件时,它不会对文件包含的单词列表进行排序。它打印出: 无 无 下面的代码假设对单词进行排序。该文件仅包含 10 个不同的单词。我不确定我是否有正确的想法。任何指导表示赞赏!谢谢

def sort_words():
   with open('crosswords', 'r') as filename:
        data = [str(i) for i in sorted(filename)]
  
   with open('crosswords', 'w') as filename:
        filename.writelines(data)
        print(data.sort(key=len, reverse=True))

def print_this(var_name) -> None:
    print(var_name)

if __name__ == "__main__":
     print_this(sort_words())
   

标签: pythonlistfilesortingpuzzle

解决方案


首先,sort方法返回None。所以,

print(data.sort(key=len, reverse=True))

将打印None

要打印排序结果,您可以执行以下任一操作:

data.sort
print(data)

或者

print(sorted(data))

然后,在您的函数sort_words中,您不会返回任何内容。所以,实际上,这条线

print_this(sort_words())

也要求打印None

你应该添加

return data

在您的sort_words功能结束时。


推荐阅读