Python OrderedDict

Python OrderedDict 是一个 dict子类,它维持了项目插入顺序。当我们在 OrderedDict 上迭代时,项目会按照被插入的顺序返回。一个常规字典不会跟踪插入顺序。所以当在它上迭代时,项目会以任意的顺序返回。当我们想确保项目返回以被插入的顺序,我们可以使用 OrderedDict。

Python 命令

  • 有秩序的诏书是python collections模块的一部分. () ( )* 我们可以创建空的 " 命令令 " ,并增加内容。 如果我们通过发号施令来创建命令令,那么命令可能会因为命令令不能维持插入命令而丢失. ( ( )* 如果一项在"命令令"中被覆盖,则保留其位置. (_) ( )* 如果一个项目被删除并再次添加,则它会移动到最后一个( _)
  • 命令 " poptime " 以FIFO顺序删除这些物品。 它接受一个布尔的论据最后',如果它被设定为真理',则物品按LIFO顺序返回。 () ( )* 我们可以使用 移动_ to_ end 函数将项目移动到命令的起始或结尾 。 它接受一个布尔的论据最后',如果它被设定为虚假',则项目被移到命令的开始。 () ( )* 从python 3.6起,为传递给秩序Dict构造器的关键词参数保留顺序,参考PEP-468.
  • 我们可以使用逆向( ) 函数, 按倒序排列 。 ( _) ( )* 命令指令对象之间的平等测试对命令敏感,并作为"list(od1.items ())"(od2.items ()).
  • 命令指令对象与其他绘图对象之间的平等测试像正版词典一样对命令敏感. 这允许在使用正则词典的地方替换有秩序的Dict对象 。 (单位:千美元) (英语)

Python 命令 示例

让我们来看看 Python OrderedDict 的一些代码示例。

创建命令对象

 1from collections import OrderedDict
 2
 3# creating a simple dict
 4my_dict = {'kiwi': 4, 'apple': 5, 'cat': 3}
 5
 6# creating empty ordered dict
 7ordered_dict = OrderedDict()
 8print(ordered_dict)
 9
10# creating ordered dict from dict
11ordered_dict = OrderedDict(my_dict)
12print(ordered_dict)

输出:

1OrderedDict()
2OrderedDict([('kiwi', 4), ('apple', 5), ('cat', 3)])

添加、更换、删除 OrderedDict 中的项目

 1# adding elements to dict
 2ordered_dict['dog'] = 3
 3
 4# replacing a dict key value
 5ordered_dict['kiwi'] = 10
 6print(ordered_dict)
 7
 8# removing and adding a value
 9ordered_dict.pop('kiwi')
10print(ordered_dict)
11ordered_dict['kiwi'] = 4
12print(ordered_dict)

输出:

1OrderedDict([('kiwi', 10), ('apple', 5), ('cat', 3), ('dog', 3)])
2OrderedDict([('apple', 5), ('cat', 3), ('dog', 3)])
3OrderedDict([('apple', 5), ('cat', 3), ('dog', 3), ('kiwi', 4)])

move_to_end 示例

1# moving apple to end and dog to start
2ordered_dict.move_to_end('apple')
3ordered_dict.move_to_end('dog', False)
4print(ordered_dict)

输出:

1OrderedDict([('dog', 3), ('cat', 3), ('kiwi', 4), ('apple', 5)])

举个例子 举个例子

1# pop last item
2item = ordered_dict.popitem(True)
3print(item)
4print(ordered_dict)

输出:

1('apple', 5)
2OrderedDict([('dog', 3), ('cat', 3), ('kiwi', 4)])

反向迭代 反向迭代

1# reversed iteration
2for item in reversed(ordered_dict):
3    print(item)

输出:

1kiwi
2cat
3dog

平等考验的例子

 1# equality tests
 2d1 = {'a': 'A', 'b': 'B'}
 3d2 = {'b': 'B', 'a': 'A'}
 4
 5od1 = OrderedDict({'a': 'A', 'b': 'B'})
 6od2 = OrderedDict({'b': 'B', 'a': 'A'})
 7
 8print(d1 == d2)
 9print(od1 == od2)
10print(d1 == od1)

输出:

1True
2False
3True

您可以从我们的 GitHub 存储库下载完整的示例代码。

参考: Python 文档

Published At
Categories with 技术
Tagged with
comments powered by Disqus