cor*_*vid 2 python ordereddictionary python-2.7
这个循环的想法是迭代列表.如果对象的某个属性不是OrderedDict的键,则会添加它.它是对象列表的字典
for object in someList:
if object.DATE not in myOrderedDict:
myOrderedDict[object.DATE]=[]
myOrderedDict[object.DATE].append(object)
Run Code Online (Sandbox Code Playgroud)
虽然它似乎确实使OrderedDict大部分正确,但它在打印时最终会出现故障.而不是拥有类似的东西更像(01/13) (02/13) (03/13)是(02/13) (03/13) (01/13).
为什么会发生这种情况?如何解决?
pure-Python sortedcontainers模块有一个可以帮助你的SortedDict类型.它按排序顺序自动维护dict键,并且有详细记录和测试.你就像用词一样使用它:
>>> from sortedcontainers import SortedDict
>>> mySortedDict = SortedDict()
>>> for object in someList:
>>> if object.DATE not in mySortedDict:
>>> mySortedDict[object.DATE]=[]
>>> mySortedDict[object.DATE].append(object)
>>> list(mySortedDict.keys())
['(01/13)', '(02/13)', '(03/13)']
Run Code Online (Sandbox Code Playgroud)
已排序的容器模块非常快,并且具有性能比较页面,其中包含针对替代实现的基准.
| 归档时间: |
|
| 查看次数: |
2719 次 |
| 最近记录: |