Python 我试图一次将多个词典保存到一个列表中,同时保留它们的值,但它不是';行不通
当它说f.write(itemsinexintence[ii][0],'')时,它给了我一个错误 关键错误:0Python 我试图一次将多个词典保存到一个列表中,同时保留它们的值,但它不是';行不通,python,dictionary,save,Python,Dictionary,Save,当它说f.write(itemsinexintence[ii][0],'')时,它给了我一个错误 关键错误:0 这是为什么?这意味着什么?有什么办法可以解决这个问题吗?正如@ggorlen所说,使用名称作为键 itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1}, {'name':'Mk II Death','stats':10',rank':5',amount':3}] def save_list2(): 将open('
这是为什么?这意味着什么?有什么办法可以解决这个问题吗?正如@ggorlen所说,使用名称作为键
itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1},
{'name':'Mk II Death','stats':10',rank':5',amount':3}]
def save_list2():
将open('all_items.txt','w')作为f:
对于ItemsExistence中的项目:
f、 写入({name}{stats}{rank}{amount}\n'.格式(**项))
这个例子需要Python3
编辑:我已将打印(…,file=f)更改为写入(…),现在它可以在py2和py3中工作
编辑2:一些解释
与
语句关闭文件
列表list
或[]
使用正整数索引(0
,1
等)字典
dict
或{}
使用键(在您的示例中'name'
,'stats'
等)。看
for
语句按列表项或dict键进行迭代。您不需要ii
,item
是列表项的内容,即dict
[1,4,'ala'中的项目的:
打印(项目)
#印刷品:
# 1
# 4
#“阿拉”
对于{'anwer':42,'sto':100,1:'first'}中的键:
打印(键)
#印刷品:
#“答案”
#“sto”
# 1
您可以通过my_dict[key]
访问dict值,或通过值对my_dict.values中的值进行迭代,或通过键和值:对键,对my_dict.items()中的值进行迭代
我使用了关键字参数**item
。在函数调用中func(**{'a':1,'b':2})
表示func(a=1,b=2)
字符串格式'.format()
(或自Python 3.6以来的格式字符串f'
)允许将数据直接放入字符串。正如@ggorlen所说,使用名称作为键
itemsinexience=[{'name':'Tester','stats':1,'rank':1,'amount':1},
{'name':'Mk II Death','stats':10',rank':5',amount':3}]
def save_list2():
将open('all_items.txt','w')作为f:
对于ItemsExistence中的项目:
f、 写入({name}{stats}{rank}{amount}\n'.格式(**项))
这个例子需要Python3
编辑:我已将打印(…,file=f)
更改为写入(…)
,现在它可以在py2和py3中工作
编辑2:一些解释
与
语句关闭文件
列表list
或[]
使用正整数索引(0
,1
等)字典
dict
或{}
使用键(在您的示例中'name'
,'stats'
等)。看
for
语句按列表项或dict键进行迭代。您不需要ii
,item
是列表项的内容,即dict
[1,4,'ala'中的项目的:
打印(项目)
#印刷品:
# 1
# 4
#“阿拉”
对于{'anwer':42,'sto':100,1:'first'}中的键:
打印(键)
#印刷品:
#“答案”
#“sto”
# 1
您可以通过my_dict[key]
访问dict值,或通过值对my_dict.values中的值进行迭代,或通过键和值:对键,对my_dict.items()中的值进行迭代
我使用了关键字参数**item
。在函数调用中func(**{'a':1,'b':2})
表示func(a=1,b=2)
字符串格式''.format()
(或自Python 3.6以来的格式字符串f'
)允许将数据直接放入字符串。使用item[“name”]
,item[“stats”]
等。dict中没有0、1、2等的键。在代码中,第一行已经产生语法错误。最好将代码复制并粘贴到问题中。使用item[“name”]
,item[“stats”]
等。dict中没有0、1、2等的键。在代码中,第一行已经产生语法错误。最好将代码复制粘贴到问题中。
itemsInExistence = [{'name': 'Tester', 'stats': 1, 'rank': 1, 'amount': 1}, {'name': 'Mk II Death', 'stats': 10, 'rank': 5, 'amount': 3}]
def save_list2():
f = open('all_items.txt', 'w')
ii = 0
for item in itemsInExistence:
print(f.write(itemsInExistence[ii][0], ''))
f.write(itemsInExistence[ii][1] + ' ')
f.write(itemsInExistence[ii][2] + ' ')
f.write(itemsInExistence[ii][3] + '\n')
ii += 1