我有一本字典,我想动态地插入键和值,但我没能做到。问题是,当我使用update方法时,它不会添加一个对,但会删除以前的值,因此在打印字典时,我只有最后一个值 这是我的密码
i = 0
for o in iterload(f):
i=i+1
mydic = {i : o["name"]}
mydic.update({i : o["name"]})
for k, v in mydic.items():
print(k,v)
print(mydic)
f是我用python代码解析的文件 结果我得到了
{3: 'toto'}
这是最后一个元素。有没有办法把所有的元素都放在我的字典里
提前谢谢
我还有一个问题
现在我需要检查输入值是否等于字典中的键,如果是,我需要获取该键的值以继续分析文件并获取其他信息。
这是我的代码:
f = open('myfile','r')
nb_name = input("\nChoose the number of the name :")
for o in iterload(f):
if o["name"] == mydic[nb_name]:
...
我得到一个关键错误
Traceback (most recent call last):
File ".../test.py", line 37, in <module>
if o["name"] == mydic[nb_name]:
KeyError: '1'
我不明白这个问题
删除以下行:
在循环之前添加以下内容:
否则,您将在每次迭代中创建一个全新的单元素字典。
此外,还包括以下内容:
更简洁地写为
最后,请注意,整个循环可以重写为字典理解:
可以使用
len()
插入值:在代码中@NPE pointed out the problem(在每次迭代中重新定义dict)。
下面是生成dict(Python 3代码)的另一种方法:
关于
KeyError: '1'
:input()
在Python 3中返回一个字符串,但是字典mydict
需要一个整数。要将字符串转换为整数,请调用int
:相关问题 更多 >
编程相关推荐