我有一个字典,想要动态地插入键和值,但是我没有成功。问题在于,在使用update方法时,它不会添加一对新的键值,而是会删除先前的值,所以在打印字典时只剩下最后一个值。
以下是我的代码:
我有一个字典,想要动态地插入键和值,但是我没有成功。问题在于,在使用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]:
...
我遇到了一个KeyError错误
Traceback (most recent call last):
File ".../test.py", line 37, in <module>
if o["name"] == mydic[nb_name]:
KeyError: '1'
我不明白这个问题。
enumerate()
时传入参数start=1
,以匹配问题中的代码而不需要使用i+1
。 - jfs