我的代码在解析输入文件(下面的示例)并将信息存储在列表/字典的组合中时遇到问题。在
我有一个CSV文件,它的行与此类似(它们是棒球统计数据):
Reyes,Jose,Mets,SS,681,191,36,12,12,57,.280
现在,我可以拆分每个字段并将其正确地存储在变量中,但是当我必须将数据存储在数据结构中时,问题就出现了。在
我必须存储每个球员的统计数据,然后将球员存储在他们所属球队的dict/列表中。在
我的思维过程与此类似:
^{2}$不幸的是,我的stats列表将充满来自整个文本文件的信息(实际上是将文本文件放在一个列表中)。我尝试过在while循环的末尾清除表,但它会完全清除列表,即使我将其存储在player字典中。在
也许有人可以简化我的想法或者告诉我我做错了什么。在
以下是我的代码供参考:
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
我相信你必须在每次迭代结束时清除你的统计列表。在
编辑:
啊,我理解你的问题。这是因为当你把列表存储在字典中然后清除它时,它也会在字典中清除它。在
我相信你可以把清单复印一份放在字典里:
^{pr2}$编辑2:
或者,我相信你能做到
相关问题 更多 >
编程相关推荐