gpt4 book ai didi

python - 将键添加到 defaultdict(dict)

转载 作者:太空狗 更新时间:2023-10-29 17:18:10 27 4
gpt4 key购买 nike

我有一个 defaultdict,看起来像这样:

my_dict = defaultdict(dict)

将打印出:

defaultdict(<class 'dict'>, {})

我还有两个列表,如下所示:

list1 =  ["W", "IY", "W"]
list2 = ["w", "ee", "w"]

我想创建一个如下所示的默认字典:

defaultdict(<class 'dict'>, {'W': {'w': 2}, 'IY': {'ee': 1}}

它以字典中的 list1 作为键,键作为下一个列表和一个单独的字典,将 list2 的实例计为值。

到目前为止我有这个:

from collections import defaultdict

d = defaultdict(dict)

list1 = ["W", "IY", "W"]
list2 = ["w", "ee", "w"]

for char in list1:
d[char] += 1

我知道这是不正确的,因为 defaultdict(dict) 不能这样处理。有没有办法我可以做到这一点?任何帮助将不胜感激:)

最佳答案

这是一个使用 collections.Counter 的解决方案。

import collections
d = collections.defaultdict(collections.Counter)

list1 = ["O", "TH", "O", "O"]
list2 = ["o", "th", "o", "o1"]

for key, value in zip(list1, list2):
d[key].update([value])

>>> d
defaultdict(<class 'collections.Counter'>, {'TH': Counter({'th': 1}), 'O': Counter({'o': 2, 'o1': 1})})
>>>

虽然这并不严格符合您的要求,collections.Counter 继承自 dict,因此它具有 dict 的所有属性

关于python - 将键添加到 defaultdict(dict),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928379/

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