在文本文件中按降序排列单词
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
函数结束时。
我正在尝试进行一个生成填字游戏的项目。这是我第一次参加/学习 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
函数结束时。