我发现其他几个人在这方面寻求帮助,但并不是我想要做的具体事情。我有一本包含各种格式(int、str、bool 等)的字典,我正在尝试保存它,以便稍后加载它。这是代码的基本版本,没有与此无关的所有额外陷阱。
petStats = { 'name':"", 'int':1, 'bool':False }
def petSave(pet):
with open(pet['name']+".txt", "w+") as file:
for k,v in pet.items():
file.write(str(k) + ':' + str(v) + "\n")
def digimonLoad(petName):
dStat = {}
with open(petName+".txt", "r") as file:
for line in file:
(key, val) = line.split(":")
dStat[str(key)] = val
print(petName,"found. Loading",petName+".")
return dStat
Run Code Online (Sandbox Code Playgroud)
简而言之,我只是通过在每行上保存一个带有 Key:Value 的文本文件来强制执行它,然后在加载时将它们全部拆分。不幸的是,这将我所有的 int 和 bool 都变成了字符串。是否有一种文件格式可以用来将字典保存到(我不需要能够阅读它,但很方便)我可以轻松加载回来?
这适用于基本字典,但如果我开始添加诸如数组之类的东西,这将变得一发不可收拾。
所以,简单的问题似乎令我感到困惑.我有一系列ArrayList因为它们需要可扩展.现在,我希望能够通过简单的for循环从每个对象中拉出第n个对象.
public ArrayList<String> name = new ArrayList<String>();
public ArrayList<Integer> stamina = new ArrayList<Integer>();
public ArrayList<Integer> heart = new ArrayList<Integer>();
public ArrayList<Integer> intel = new ArrayList<Integer>();
public ArrayList<Integer> speed = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
我将在稍后的代码中添加/提取这些信息,因此我希望通过单个2D数组可以轻松访问它.有点像,
racerInfo[][] = { name, stamina, heart, intel, speed };
Run Code Online (Sandbox Code Playgroud)
然后,如果我想要赛车编号为7的信息
for ( int i=0; i<=racerInfo.length - 1; i++ ) {
System.out.println(racerInfo[i][7]);
}
Run Code Online (Sandbox Code Playgroud)
我该如何设置racerInfo场地?我似乎无法弄清楚正确的设置.如果你有任何更好的建议,我完全开放,因为我仍然是新的,只是试图拼凑一些有效的东西.