Python在生物信息学中的应用:有序字典

2024-02-21 16:31:49 浏览数 (2)

我们知道,通过 {} 创建的字典是无序的。如何创建有序字典呢?

解决方案

可以使用 collections 模块中的 OrderedDict 类。当对字典做迭代时,它会严格按照元素添加的顺序进行。例如:

代码语言:javascript复制
from collection import OrderedDict

d = OrderedDict()
d['1st'] = 1
d['2nd'] = 2
d['3rd'] = 3
d['4th'] = 4

for key in d:
    print(k, d[key])

输出内容:

代码语言:javascript复制
1st 1
2nd 2
3rd 3
4th 4

当字典需要转换成其他格式并且希望保持内部元素的顺序时,有序字典特别有用。例如:

代码语言:javascript复制
import json
j = json.dumps(d)

# j 的内容是:
# {"1st": 1, "2nd": 2, "3rd": 3, "4th": 4}

讨论

需要注意的是,OrderedDict 的大小是普通字典的 2 倍多,使用时需要权衡其额外的内存开销与带来的好处。

参考

  • 《Python Cookbook》第三版
  • http://python3-cookbook.readthedocs.org/zh_CN/latest/

0 人点赞