# -*- coding: utf-8 -*-
"""
データの並べ替え（プログラム）
"""
# これは，難易度１を達成するプログラムのソースコードです．
# これを流用する場合は，内容を理解し，コメントを追加しなさい．
# 難易度２以上の達成を目指すには，このコードからでは遠回りになる場合があります．
# きちんと自分で考えて試行錯誤することが大切です．


import random


# ファイル「data.txt」からデータを読み込み
def load_data():
    fr = open("data.txt", "r", encoding="UTF-8")
    line_list = fr.readlines()
    x = []
    for line in line_list:
        data = line.split(",")
        try:
            num_int = int(data[1])
        except ValueError:
            break
        else:
            if 0 <= num_int <= 999:
                x.append([data[0].strip(), num_int])

    return x


# データを表示
def print_data(x):
    for line in x:
        print(f"{line[0]:3}, {line[1]}")


def main():
    x = load_data()

    order = input("出力形式を選んで下さい。[a]昇順、[d]降順、[s]シャッフル：")
    print()  # 採点の都合上の改行

    if   order == "d":  # 「d」が入力されたら降順
        x.sort(key=lambda x:x[1], reverse=True)
        print("降順に出力します")
    elif order == "s":  # 「s」が入力されたらシャッフル
        random.shuffle(x)
        print("シャッフルして出力します")
    else:               # それ以外なら昇順
        x.sort(key=lambda x:x[1])
        print("昇順に出力します")
    
    # 数値列を出力
    print_data(x)
    
    input("\nEnterを押してプログラムを完全終了")


if __name__ == "__main__":
    main()
