【发布时间】:2014-12-07 12:52:06
【问题描述】:
我一直在网上研究一种创建有序字典的简单方法并登陆 OrderedDict 及其更新方法,我已经成功实现过一次,但是现在代码往往不会对添加的术语进行排序,例如放置的物品是:
Doc1: Alpha, zebra, top
Doc2: Andres, tell, exta
Output: Alpha, top, zebra, Andres, exta, tell
My goal is to have Alpha, Andres......, top, zebra
这是代码:
finalindex= collections.OrderedDict()
ctr=0
while ctr < docCtr:
filename = 'dictemp%d.csv' % (ctr,)
ctr+=1
dicTempList = io.openTempDic(filename)
print filename
for key in dicTempList:
if key in finalindex:
print key
for k, v in finalindex.items():
newvalue = v + "," + dicTempList.get(key)
finalindex.update([(key, newvalue)])
else:
finalindex.update([(key, dicTempList.get(key))])
io.saveTempDic(filename,finalindex)
有人可以帮助我吗?
【问题讨论】:
-
OrderedDict不是“排序”的字典。它按插入顺序返回键,而不是按字典顺序。你需要像this recipe 这样的东西。 -
感谢您的快速回复
-
你可以用有序的字典排序,看我的回答。
-
如果您无论如何都必须对项目进行排序,那么在您的代码中使用
defaultdict可能会更好