入力ファイル (以下のサンプル) を解析し、リスト/辞書の組み合わせで情報を格納するコードに問題があります。
これに似た行を含む CSV ファイルがあります (これらは野球の統計です)。
Reyes,Jose,Mets,SS,681,191,36,12,12,57,.280
今のところ、各フィールドを分割して変数に適切に格納することはできますが、データをデータ構造に格納する必要がある場合に問題が発生します。
各プレーヤーの統計を保存し、その後、プレーヤーを所属する各チームの辞書/リストに保存する必要があります。
私のプロセスはこれに似ていました:
DICT OF TEAMS (TEAM IS KEY, VALUE IS A DICT OF PLAYERS)
|
V
DICT OF PLAYERS (THEIR FULL NAME IS KEY, VALUE IS A LIST OF STATS)
|
V
LIST OF STATS (EVERY SINGLE STAT IS IN HERE)
残念ながら、私の統計リストはテキスト ファイル全体からの情報でいっぱいになります (基本的に、テキスト ファイルをリストに入れます)。while ループの最後でテーブルをクリアしようとしましたが、リストをプレーヤー ディクショナリに保存しても完全にクリアされます。
たぶん、誰かが私の考えを単純化したり、私が間違っていることを教えてくれるかもしれません.
参照用の私のコードは次のとおりです。
import sys
from collections import OrderedDict
if len(sys.argv) == 1:
filename = raw_input("No filename supplied. Please enter one now: ")
print "Filename supplied. Running now."
else:
print "Filename supplied. Running now."
filename = sys.argv[-1]
#print "\n"
f = open(filename, "r")
l = f.readline()
lastName = "" #0
firstName = "" #1
teamName = "" #2
position = "" #3
atBats = "" #4
baseHits = "" #5
doubles = "" #6
triples = "" #7
homeruns = "" #8
rbi = "" #9
batingAvg = "" #10
fullName = ""
teams = {}
players = {}
stats = []
while l:
l = l.strip("\n")
curCol = l.split(",")
l = f.readline()
lastName = curCol[0]
firstName = curCol[1]
teamName = curCol[2]
position = curCol[3]
atBats = curCol[4]
baseHits = curCol[5]
doubles = curCol[6]
triples = curCol[7]
homeruns = curCol[8]
rbi = curCol[9]
batingAvg = curCol[10]
fullName = firstName + " " + lastName
stats.append(lastName)
stats.append(firstName)
stats.append(teamName)
stats.append(position)
stats.append(atBats)
stats.append(baseHits)
stats.append(doubles)
stats.append(triples)
stats.append(homeruns)
stats.append(rbi)
stats.append(batingAvg)
players[fullName] = stats
print players