python - 在文本文件中按降序对单词进行排序
问题描述
我正在尝试一个生成填字游戏的项目。这是我第一次学习/学习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())
解决方案
首先,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
功能结束时。