对不起,很长的问题。我在 Python 3.2 中有这样的字典:
d = {'Paul ': [5, Counter({'i': 1, 'in': 1, 't': 1, 'fa': 1, 'cr': 1})],
'Lisa ': [4, Counter({'f': 3, 'bo': 1})],
'Tracy ': [6, Counter({'sl': 3, 'fi': 1, 'an': 1, 'piz': 1})],
'Maria': [2, Counter({'t': 2})]}
我需要为键中的第一个值乘以每个 Counter 值,并将这些值附加到键中:
d2 = {'Paul': [5, {'i': (2, 10), 'in': (4, 20), 't': (3, 15), 'fa': (2, 10), 'cr': (2, 10)})],
'Lisa': [4, {'f': (3, 12), 'bo': (8, 32)})],
'Tracy': [6, {'sl': (3, 18), 'fi': (1, 6), 'an': (5, 30), 'piz': (2, 12)})]}
因此,在嵌套字典中,每个键都有一对数字:第一个数字是最初分配给该键的值,第二个数字是字典中第一个数字相乘的结果关键。如上所示,例如,i
嵌套在Paul
, 中的键在原始文件中的值为 1,而在输出中该值附加了 10(10 是键的值'i': 2
乘以 5,即键的第一个值'Paul' : 5, Counter({'i':2...
)。依此类推...我尝试将其转换为元组:
for key, lst in d.items():
mult[key] = [lst[0], {k: (lst[0], float(v)/lst[0]) for k, v in lst[1].items()}]
但我得到了错误的结果,例如:
d2 = {'Paul ': [5, {'i': (5, 10), 'in': (5, 20), 't': (5, 15), 'cr: (5, 10}]...
其中归属于每个键的原始值被乘法结果的第一个值替换。我真的尝试了不同的方法来解决这个问题,但无济于事。有没有人知道如何解决这个问题。我学习 Python 的速度非常慢,这将有很大帮助。谢谢!