0

我想存储数据[年][月] = 日

年份和月份都可以是字典的键。

像 data[year][month].append(day) 这样的操作是可能的。

4

2 回答 2

2

您可以使用嵌套字典:

data[year] = {}
data[year][month] = [day]

为了使这更容易一点,您可以使用collections.defaultdict

from collections import defaultdict

data = defaultdict(dict)

data[year][month] = [day]

甚至:

def monthdict():
    return defaultdict(list)
data = defaultdict(monthdict)

data[year][month].append(day)

后一种结构的演示:

>>> from collections import defaultdict
>>> def monthdict():
...     return defaultdict(list)
... 
>>> data = defaultdict(monthdict)
>>> data[2013][3].append(23)
>>> data
defaultdict(<function monthdict at 0x10c9d0500>, {2013: defaultdict(<type 'list'>, {3: [23]})})
于 2013-03-23T17:03:08.973 回答
1

你可以使用 dict-of-dicts-of-lists 吗?

data = {'1972' :  {
                   '01': ['a', 'list', 'of', 'things'],
                   '02': ['another', 'list', 'of', 'things'],
                  },
        '1973' :  {
                   '01': ['yet', 'another', 'list', 'of', 'things'],
                  },
        }        

>>> data['1972']['02']
['another', 'list', 'of', 'things']

>>> data['1972']['01'].append(42)
>>> data
{'1972': {'01': ['a', 'list', 'of', 'things', 42],
  '02': ['another', 'list', 'of', 'things']},
 '1973': {'01': ['yet', 'another', 'list', 'of', 'things']}}
于 2013-03-23T17:02:25.970 回答