2016-04-20 6 views

答えて

1

通常、例外が

TypeError: 'NoneType' has no attribute '__getitem__' 

でなければなりません。しかししかし、あなたがこれを実行することはできません。list.sort()インプレースのリストを変更し、何も(その手段を返さないため

scores.sort()[:20] 

を単にだこと暗黙のうちにNoneを返します)。

だからどちらか...スライス作業の前に別の文で

scores.append((item, score)) 
scores.sort() 
output_file.write(scores[:20] + '\n') 

scores.sort()を配置する必要があります...またはあなたが使用して組み込みの元のリストを変更しない方法sorted(...)が、ソートされたコピーを返します。あなたがにアクセスしたい場合は、最初のオプションを選択したはずです

scores.append((item, score)) 
output_file.write(sorted(scores)[:20] + '\n') 

は後で再リストを並べ替えられていますが、後で再びソートされていないリストにアクセスしたい場合は、番目のオプションを選んだ必要があります。これ以上リストが必要ない場合は、任意のオプションを選択できます。

+0

ありがとうございます。それは両方の方法で働いた。 – ssh26

+0

"ありがとう"というコメントを書くのではなく、左の灰色のチェックボタンをクリックしてこの回答を受け入れてください。また、[ツアー]ページを読んで[ヘルプ]をチェックして、このサイトの仕組みについて学んでください。 –