我试图将排序列表写入文件。我有1000个整数,我按升序排序,但无法设法将新的升序列表写入我的新文件'结果'。我是编程新手,非常感谢任何帮助。 到目前为止,这是我的代码:
def insertion_sort():
f = open("integers.txt", "r")
lines = f.read().splitlines()
print(lines)
print(type(lines[0]))
results = list(map(int, lines))
print(type(results[0]))
results.sort()
print(results)
f=open("integers.txt", "r")
lines = f.read().splitlines()
results = list(map(int,lines))
insertion_sort()
value = results.sort()
file_to_save_to = open("results.txt", "w")
file_to_save_to.write(str(value))
file_to_save_to.close()
答案 0 :(得分:0)
你的问题来自这一行
value = results.sort()
列表的排序方法不会返回任何内容,它会修改列表。
相反,您应该使用sorted
value = sorted(results)
或直接列为results
的列表,而不存储它的排序方法
results.sort()`
答案 1 :(得分:0)
你正在调用insertion_sort()
这是一个执行操作的函数,但还没有返回任何内容。您只想在函数末尾添加return语句来返回results
:
def insertion_sort():
f = open("integers.txt", "r")
lines = f.read().splitlines()
print(lines)
print(type(lines[0]))
results = list(map(int, lines))
print(type(results[0]))
results.sort()
print(results)
return results # <- Add this line
然后,通过更改来使用返回的列表:
insertion_sort()
至value = insertion_sort()
答案 2 :(得分:0)
你应该尝试使用函数排序
value = sorted(results)
你可能不会使用list(map(int,lines)))你可以将map对象传递给sorted,所以代码将是这样的:
results = sorted(map(int,lines))
完整的例子将是这样的:
f=open("integers.txt", "r")
lines = f.read().splitlines()
sorted_lines = sorted(map(int,lines))
file_to_save_to = open("results.txt", "w")
for line in sorted_lines:
file_to_save_to.write(str(line))
file_to_save_to.close()
答案 3 :(得分:0)
首先,如果您将函数更改为接收参数(整数列表),并返回排序列表而不是None(现在就是这样),那将会很棒。
def insertion_sort(T):
return sorted(T)
f=open("integers.txt", "r")
lines = f.read().splitlines()
results = list(map(int,lines))
value = insertion_sort(results)
file_to_save_to = open("results.txt", "w")
file_to_save_to.write(str(value))
file_to_save_to.close()