0

スプリットを機能させることができなかった前に。現在は機能していますが、リストのリストの最後のリストでのみ計算を実行しています。ファイルの最後のプレーヤーだけでなく、各プレーヤーの効率を計算するために必要です。

計算が私の問題を解決する前に、しばらくループを考えていますが、私は提案を受け入れています。

def get_data_list (file_name):
    data_file = open(file_name, "r")
    data_list = []
    for line_str in data_file:

        # strip end-of-line, split on commas, and append items to list
        data_list =line_str.strip().split(',')

        gp=int(data_list[6])
        mins=int(data_list[7])
        pts=int(data_list[8])
        oreb=int(data_list[9])
        dreb=int(data_list[10])
        reb=int(data_list[11])
        asts=int(data_list[12])
        stl=int(data_list[13])
        blk=int(data_list[14])
        to=int(data_list[15])
        pf=int(data_list[16])
        fga=int(data_list[17])
        fgm=int(data_list[18])
        fta=int(data_list[19])
        ftm=int(data_list[20])
        tpa=int(data_list[21])
        tpm=int(data_list[22])

        efficiency = ((pts+reb+asts+stl+blk)-((fga-fgm)+(fta-ftm)+to))/gp        

        data_list.append (efficiency)

    return data_list

    file_name1 = input("File name: ")
    result_list = get_data_list (file_name1)
    print(result_list)

よろしくお願いします。

4

1 に答える 1

1

data_list各反復で再定義しています:

data_list = []
for line_str in data_file:

    # strip end-of-line, split on commas, and append items to list
    data_list =line_str.strip().split(',')

data_list最初のものを のように変更してみてくださいdata = []。また、withファイルを開くときに使用して、閉じるなどの操作が適切に処理されるようにすることもできます。

def get_data_list (file_name):
    with open(file_name, "r") as data_file:
        data = []
        for line_str in data_file:

            # strip end-of-line, split on commas, and append items to list
            data_list =line_str.strip().split(',')

            # Your definitions here...
            gp=int(data_list[6])
            # ...

            efficiency = ((pts+reb+asts+stl+blk)-((fga-fgm)+(fta-ftm)+to))/gp          
            data_list.append (efficiency)
            data.append(data_list)

    return data

ただし、 csvモジュールを調べることもできます-コンマ区切りの値を扱っているようで、そのモジュールはそれらを処理するための非常に優れたインターフェイスを提供します。

于 2012-12-03T02:00:16.817 に答える