2012-12-03 63 views
0

在我無法使拆分工作之前。現在它正在工作,但只對列表的最後一個列表執行計算。我需要它來計算每個玩家的效率,而不僅僅是文件中的最後一個。這是我使用Python拆分的另一篇文章的後續內容

我想在計算可能會解決我的問題之前的while循環,但我願意提供建議。

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) 

在此先感謝您的幫助。

回答

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模塊 - 它看起來像你處理逗號分隔值,和該模塊提供了一個非常好的界面來處理它們。

+0

我試過了,仍然得到了相同的結果。僅計算列表列表中的最後一個條目。 –

+0

不幸的是,我們還沒有得到有關聲明,所以這是不允許的。 –

+0

@BoliverAllmon沒問題 - 當您將'data_list = []'重命名爲'data = []'時,您是否將您的'data_list.append(效率)'改爲'data.append(效率)',和你的'返回data_list'到'返回數據'? – RocketDonkey

相關問題