如果collections.defaultdict不可用怎么办?

时间:2010-09-25 02:46:09

标签: python collections

Solaris python 2.4.3:

from collections import defaultdict 

不存在..

请告知可以使用多级词典的替代方法:

dictOut['1']['exec'] = 'shell1.sh'
dictOut['1']['onfailure'] = 'continue'
...
dictOut['2']['exec'] = 'shell2.sh'
dictOut['2']['onfailure'] = stop'
非常感谢 applom

4 个答案:

答案 0 :(得分:2)

setdefault

dictOut.setdefault('1', {})['exec'] = 'shell1.sh'

答案 1 :(得分:2)

在过去24小时内通过looks-like-it-works code回答(通过搜索“defaultdict”找到,选择“最新”或“有效”订单)

答案 2 :(得分:2)

作为setdefault的替代方案,如果您想要更高级别的词典优度,请尝试

class MultiDict(dict):
    def __getitem__(self, item):
        if item not in self.iterkeys():
            self[item] = MultiDict()

        return super(MultiDict, self).__getitem__(item)

答案 3 :(得分:0)

我只是想知道为什么不使用带有元组的单级dict作为哈希键?