gpt4 book ai didi

python - 在 Python 中迭代 OrderedDict

转载 作者:行者123 更新时间:2023-12-03 09:17:13 24 4
gpt4 key购买 nike

我有以下 OrderedDict :

OrderedDict([('r', 1), ('s', 1), ('a', 1), ('n', 1), ('y', 1)])

这实际上表示一个单词中一个字母的频率。

在第一步 - 我会用最后两个元素来创建这样的联合元组;
 pair1 = list.popitem()
pair2 = list.popitem()
merge_list = (pair1[0],pair2[0])
new_pair = {}
new_pair[merge_list] = str(pair1[1] + pair2[1])
list.update(new_pair);

这为我创建了以下 OrderedList:
OrderedDict([('r', 1), ('s', 1), ('a', 1), (('y', 'n'), '2')])

我现在想遍历元素,每次取最后三个并根据值的较低总和决定联合对象是什么。

例如上面的列表将转向;
OrderedDict([('r', 1), (('s', 'a'), '2'), (('y', 'n'), '2')])

但以上是:
OrderedDict([ ('r', 1), ('s', 2), ('a', 1), (('y', 'n'), '2')])

结果将是:
OrderedDict([('r', 1), ('s', 2), (('a','y', 'n'), '3')])

因为我希望左边的值较小

我试图自己做,但不明白如何在 OrderedDict 上从头到尾迭代。

我该怎么做?

已编辑
回复评论:

我得到一个句子中字母频率的字典:
{ 's':1, 'a':1, 'n':1, 'y': 1}

并且需要从中创建一个霍夫曼树。

例如:
((s,a),(n,y))

我正在使用 python 3.3

最佳答案

简单的例子

from collections import OrderedDict

d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3

for key, value in d.items():
print key, value

输出:
a 1
b 2
c 3

关于python - 在 Python 中迭代 OrderedDict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20983252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com