当值以某个键出现在我的文件中时,我想将它们附加到我的字典中。如果字典中已经存在密钥。否则我想用它的值创建键。例如:
f=open('Fruits.txt','r')
for line in f:
field=line.split('\t')
fruits={}
if 'Gala' in field[4] and 'Apples' in fruits.keys():
print 'Cider'
fruits['Apples'].append('Gala')
elif 'Gala' in field[4]:
fruits['Apples']='Gala'
print fruits.keys()
f.close
当我运行这个脚本时。我没有收到任何错误消息,但“Cider”没有打印出来,这表明“Apples”键在水果字典中未被识别。同时指纹水果.钥匙()每行打印:
[“苹果”]
但是,当我删除(所有)之前的压痕打印水果.钥匙(),打印:
[]
你知道为什么“苹果”钥匙被遗忘和/或不被识别吗?你知道吗
提前谢谢!你知道吗
您的示例中有几个问题:
应该在循环之前初始化
fruits
字典。否则你每行都会得到一本新字典。你知道吗fruits['Apples'].append('Gala')
在第一次迭代中,这保证会引起
KeyError
。你的字典是空的,但是你假设它已经有了Apples
作为键和一个空列表作为值。在尝试append
或更好的方法之前,您应该验证一下,使用defaultdict这样可以省去麻烦。你知道吗f.close
close
是一个函数,所以此行应该是f.close()
。你知道吗总而言之:
或者更好的方法是,使用^{} 为您处理文件的打开和关闭:
你的问题需要弄清楚你的钥匙和价值观在哪里?! 下面是一个示例,但您应该根据自己的问题选择键和值:
试试这个:
相关问题 更多 >
编程相关推荐