我有一个bibtex文件,其中包含大约640个条目(上升趋势)。我使用Jabref来维护这个文件。实际上我想要清理东西并做一些事情,Jabref无法帮助。所以我想编写代码并尽可能灵活。
有些任务是例如哪些文章缺少“文件”条目或“标题”条目?哪些文章具有相同的文件条目等。
我的方法是填充一个词典列表。 Dictionary包含bibtex文件中一篇文章的信息。例如:
elements = [{
'author': 'Ando, K. and Ota, H. and Oki, T',
'comment': 'modelling, fundamental diagram, plane, cellular automata',
'file': 'Ando1988.pdf',
'issue': '2',
'journal': 'Railway R',
'owner': 'bob',
'timestamp': '2008.01.09',
'title': 'Forecasting the flow of people',
'type': 'ARTICLE',
'volume': '45',
'year': '1988'},
{'author': "Helbing, D. and Farkas, I. J. and Moln\\'{a}r, P. and Vicsek, T",
'booktitle': 'Pedestrian and Evacuation Dynamics',
'editor': 'Schreckenberg, Michael and Scharma, Som Deo',
'file': 'Helbing2002.pdf',
'key': 'Helbing2002',
'owner': 'jack',
'publisher': 'Springer',
'timestamp': '2007.12.12',
'title': 'Simulation of pedestrian crowds in normal and evacuation situations',
'type': 'INPROCEEDINGS',
'year': '2002'
}]
我在这个结构上运行的函数总是以
之类的东西开始for element in elements:
do_stuff with element
虽然我的代码工作正常,但不知怎的,我有一种感觉,我正在做的事情蛮力智慧。这就是为什么我想发起讨论并问你:
编辑:我想提一下,由于不同类型的文章(BOOK,PROCEEDINGS,ARTICLE等),而且因为我只是人类,所以词典可能有不同的键和不同数量的密钥。
答案 0 :(得分:0)
字典适用于处理不可预测的键值对。对象适用于处理可预测的键值对(事实上,在Python中,您可以在自己的对象中存储任意属性)。
类可能给你的主要优点:
如果您觉得更容易,也可以将所有数据保存在类中。
你也可以把一堆代码带到codereview.stackexchange,看看你是否喜欢他们重构为对象的建议。