在文本文件中按降序排列单词

sort words in descending order in a text file

我正在尝试进行一个生成填字游戏的项目。这是我第一次参加/学习 python。所以基本上我想先按长度对单词进行排序,然后将第一个单词放在 grid/board 上。但是当我想打开名为 'crosswords' 的文件时,它不会对文件包含的单词列表进行排序。它打印出这个: None None 下面的代码假设对单词进行排序。该文件仅包含 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())
   

首先,sort方法returns None。所以,

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

将打印 None.

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

data.sort
print(data)

print(sorted(data))

然后,在您的函数 sort_words 中,您什么都不 return。所以,实际上,行

print_this(sort_words())

也要求打印 None

你应该添加

return data

在您的 sort_words 函数结束时。