загружать файлы в офис godaddy 365 один диск, используя php

Если вы хотите иметь списки только тогда, когда они необходимы, и значения в любых других случаях, то вы можете DOthis:

class DictList(dict):
    def __setitem__(self, key, value):
        try:
            # Assumes there is a list on the key
            self[key].append(value) 
        except KeyError: # if fails because there is no key
            super(DictList, self).__setitem__(key, value)
        except AttributeError: # if fails because it is not a list
            super(DictList, self).__setitem__(key, [self[key], value])

Затем вы можете сделать следующее:

dl = DictList()
dl['a']  = 1
dl['b']  = 2
dl['b'] = 3

Что будет хранить следующее {'a': 1, 'b': [2, 3]}.


Я использую эту реализацию, когда хочу иметь обратные / обратные словари, и в этом случае я просто делаю:

my_dict = {1: 'a', 2: 'b', 3: 'b'}
rev = DictList()
for k, v in my_dict.items():
    rev_med[v] = k

Что будет генерировать тот же вывод, что и выше: {'a': 1, 'b': [2, 3]}.


CAVEAT: Эта реализация основана на несуществующем методе append (в значениях, которые вы хранятся). Это может привести к непредвиденным результатам, если значения, которые вы храните, являются списками. Например,

dl = DictList()
dl['a']  = 1
dl['b']  = [2]
dl['b'] = 3

выдаст тот же результат, что и раньше {'a': 1, 'b': [2, 3]}, но можно было ожидать следующее: {'a': 1, 'b': [[2], 3]}.

-2
задан Curious Developer 13 July 2018 в 10:33
поделиться