2016-11-18 6 views
0

ソートされたリストをファイルに書き込もうとしています。私は昇順でソートした1000の整数を持っていますが、新しいファイル '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) 


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

の私はそれを試してみたが、それはその言葉: トレースバック(最新の呼び出しの最後): ファイル「C:\ユーザーオクタヴィアンROSCA \デスクトップ\プログラミングを\ \配属人"sort"は定義されていません –

+0

私の間違いですが、この関数は 'sort()'ではなく、 'sort()'ではなく、 'sort4 ' 'sorted(results)'を使うことができますが、 'results.sort()'を使ったように動作します。 – davedwards

答えて

0

あなたの問題は、このライン

value = results.sort()

リストのソート方法が何も返さないからで、それは場所にリストを変更します。

代わりにあなたはそれの戻り値を格納することなく、直接resultsとしてsorted

value = sorted(results) 

またはリストを使用する必要がありますあなたが行う機能であるinsertion_sort()を呼んでいるソート方法

results.sort()` 
+0

ありがとう! –

0

ですまだ何も返されていません。 、そして、

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 

変更することで、返されたリストを使用します:あなたは、単にあなたの関数の最後にreturn文を追加することにより、resultsを返すようにしたいでしょう
insertion_sort()value = insertion_sort()

0

にあなたがしてみてください利用機能は

value = sorted(results) 

をソートそして、あなたはリスト(マップ(int型、ライン))を使用しない場合があります)あなたは、ソートにマップオブジェクトを渡すことができますので、コードは次のようになります:

results = sorted(map(int,lines)) 

そして完全な例は次のようになります:あなたは、パラメータ(intのリスト)を受け取るためにあなたの関数を変更し、ソートされたリストを返す場合は、すべての

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() 
0

まず、それは素晴らしいことです代わりに、なし(それが今のように)

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() 
関連する問題