我遇到了解析輸入文件(示例如下所示)並將信息存儲在列表/字典組合中的代碼問題。存儲列表字典的問題
我有了類似這樣的行(他們是棒球統計)一個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
起飛看看csv模塊。 – jramirez
_「他們的全名是關鍵,值是一個統計列表。」_當兩名球員有相同的名字時,你會做什麼? – Kevin
@凱文我理解你的觀點,但我認爲一支球隊有兩名同名球員的可能性不大。如果他們這樣做,那麼我們不知道CSV究竟在談論哪一個。 – sdasdadas