Что делать, если collection.defaultdict недоступен? - PullRequest
2 голосов
/ 25 сентября 2010

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 ]

2 голосов
/ 25 сентября 2010

В ответе код выглядит как работает в течение последних 24 часов (в результате поиска «defaultdict» выберите «новейший» или «активный» заказ)

2 голосов
/ 25 сентября 2010

В качестве альтернативы setdefault, если вам нужен дополнительный уровень качества словаря, попробуйте

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

        return super(MultiDict, self).__getitem__(item)
2 голосов
/ 25 сентября 2010

setdefault?

dictOut.setdefault('1', {})['exec'] = 'shell1.sh'
0 голосов
/ 25 сентября 2010

Мне просто интересно, почему бы не использовать одноуровневый dict с кортежем в качестве хеш-ключа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...