gpt4 book ai didi

python - Python 中的二维关联数组

转载 作者:太空狗 更新时间:2023-10-30 01:43:55 25 4
gpt4 key购买 nike

我有一个包含“A”“B”“C”等术语的 set()。我想要一个二维关联数组,以便我可以执行像 d['A']['B'] += 1 这样的操作。执行此操作的 pythonic 方式是什么,我在想一个字典的字典。有没有更好的办法。

最佳答案

有两个明显的解决方案:一,使用 defaultdict 自动将一个 dict 嵌套在另一个 dict 中

>>> d = collections.defaultdict(dict)
>>> d['a']['b'] = 'abc'
>>> d
defaultdict(<type 'dict'>, {'a': {'b': 'abc'}})
>>>

另一种是只使用元组作为你的字典键:

>>> d = {}
>>> d['a','b'] = 'abc'
>>> d
{('a', 'b'): 'abc'}
>>>

要获得 += 行为,用 defaultdict(int) 替换上面的字典:

>>> d = collections.defaultdict(lambda:collections.defaultdict(int))
>>> d['a']['b'] += 1
>>> d
defaultdict(<function <lambda> at 0x18d31b8>, {'a': defaultdict(<type 'int'>, {'b': 1})})
>>>
>>> d = collections.defaultdict(int)
>>> d['a','b'] += 1
>>> d
defaultdict(<type 'int'>, {('a', 'b'): 1})
>>>

关于python - Python 中的二维关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6696279/

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