1
私は、ディレクトリ内のすべてのファイルの平均を探し出し、リストに保存してから平均値で並べ替えるコードを書いています。例えば、ファイルのリストである[ '私'、 'あなた'、 '彼'、 '彼女']リストの中で最も高い平均でソートする
とスコアリストである[ '4.67'、 '5.33'、 '6.33'、 '5.33']
student_average_list ['私:4.67'、 'あなた:5.33'、 'him:6.33'、 'her:5.33']となるです。
[him:6.33]、[you:5.33]、[him:5.33]、[me:4.67]]になるように並べ替えたいです。
構文エラーはなく、誤った並べ替えだけです。すべてのおかげで、私は
import operator
results = zip(files, map(float, scores))
results = sorted(results, key=operator.itemgetter(1), reverse=True)
student_average_list = ["{}: {:.2f}".format(x, y) for x, y in results]
print(student_average_list)
を使用すると、文字列に変換する前にソートされたリストを作成する方法を
for x, y in zip(files, scores):
student_result = (x + ": " + y)
student_average_list.append(student_result)
student_average_list.sort(key=lambda x: float(x[-1]), reverse=True)
print(student_average_list)
に代わる
def sort_average():
scores = []
student_average_list = []
for file in os.listdir(path):
file = os.path.join(path, file)
if os.path.isfile(file):
with open(file, 'r') as txt_file:
data = [float(line.rstrip()) for line in txt_file]
average = (sum(data)/len(data))
average = ("{0:.2f}".format(average))
scores.append(str(average))
for x, y in zip(files, scores):
student_result = (x + ": " + y)
student_average_list.append(student_result)
student_average_list.sort(key=lambda x: float(x[-1]), reverse=True)
print(student_average_list)
多くのおかげで、今働いています – Eric1108