0
我正在寫一個python腳本,它從.txt文件中的句子中讀取球員姓名和統計數據,然後更新字典中的統計數據,然後打印出他們的平均統計數據。我在將多個值分配給同一個「玩家」鍵時遇到了問題,並且在下面的邏輯中正確更新了玩家統計信息。 .group部分也給我帶來麻煩。我怎樣才能做到這一點?在python字典中添加和訪問鍵值
import re, sys, os, math
if len(sys.argv) < 2:
sys.exit("Usage: %s filename" % sys.argv[0])
filename = sys.argv[1]
if not os.path.exists(filename):
sys.exit("Error: File '%s' not found" % sys.argv[1])
line_regex = re.compile(r"^(\w+ \w+) batted (\d+) times with (\d+) hits and (\d+) runs")
line = [line.strip() for line in open(filename)]
f = open (filename)
playerStats = {'players': [0, 0, 0]}
for players in playerStats:
player = line.group(1)
atBat = line.group(2)
hit = line.group(3)
if player in playerStats:
playerStats[player][0] += atBat
playerStats[player][1] += hit
if player not in players:
player = line.group(1)
playerStats[player][0] = atBat
playerStats[player][1] = hit
avgs = 0
else:
playerStats[player][0] = player
playerStats[player][0] = atBat
playerStats[player][1] = hit
playerStats[player][2] = 0
for player in players:
avgs[player] = round(float(hits[player])/float(atBats[player]), 3)
print "%s: %.3f" % (player, avgs[player])
回溯(最近通話最後一個): 文件 「ba.py」 19行,在 玩家= line.group(1) AttributeError的: '名單' 對象有沒有屬性 '組'
更改爲元組修復了語法錯誤,謝謝!現在它說hit,atBats和avgs不是在元組中定義的,但是我在那裏創建了它們,然後再定義它們吧?我該如何解決 – 2014-10-06 13:05:04
你將初始化爲'playerStats = {'players':[0,0,0]}',然後使用像'playerStats [player] [0] + = 3'這樣的索引來修改這些值。另外,我剛剛意識到我是愚蠢的,元組是不可變的,所以你必須使用'list'來修改成員。或者使用嵌套字典方法。 – CoryKramer 2014-10-06 13:07:43
您能否使用此代碼編輯原始帖子?閱讀註釋部分中的代碼非常困難,所有的格式都會丟失。 – CoryKramer 2014-10-06 13:21:21