Использование умолчания на Python
Ссылки в слова являются выгодным методом хранения информации для последующего восстановления по имени (ключу). Ключи должны быть единственными в своем роде, не меняющимися статьями и представлять собой обычные строки. Качества в словесной ссылке могут быть любыми. Для некоторых приложений эти качества являются простыми, например, целые числа и строки.
Тем более увлекательно, когда качества в слове “ссылка” – это накопления (записи, приказы и т.д.). Для этого необходимо ввести стоимость (пустая сводка или диктат), используя первый прогон по заданному ключу. В то время как физически это, как правило, просто сделать, тип диктата по умолчанию механизирует и улучшает такие задания.
Дефолт работает точно так же, как типичный диктат, однако, он устанавливается с помощью мощности (“установка по умолчанию”), которая не берет на себя никаких претензий и дает дефолту стимул к несуществующему ключу.
По умолчанию никогда не возникнет ошибка KeyError. Любой ключ, которого не существует, возвращает стоимость заводу-изготовителю по умолчанию.
>>> из коллекций импортировать по умолчанию
>>> ice_cream = defaultdict(lambda: ‘Vanilla’)
>>>
>>> ice_cream = defaultdict(lambda: ‘Vanilla’)
>>> ice_cream[“Сара”] = “Обезьяна в лохмотьях”.
>>> ice_cream[‘Abdul’] = ‘Butter Pecan’.
>>> Печать ice_cream[‘Сара’]
Коренастая обезьяна
>>> Печать ice_cream[‘Joe’]
Ваниль
>>>
Обязательно передайте статью о возможностях в функцию defaultdict(). Попробуйте не вызывать емкость, например defaultdict(func), а не defaultd.ict(func()).
В сопроводительной модели для подсчета используется умолчание. Завод-изготовитель по умолчанию – int, который, таким образом, имеет оценку по умолчанию в ноль. (Примечание: “лямбда: 0″ также будет работать в этом случае). Для каждого питания в сводке стоимость увеличивается на единицу, где ключом является питание. Мы не должны гарантировать, что питание является сейчас ключом – при этом будет использована оценка по умолчанию равная нулю.
>> из коллекций импортировать по умолчанию
>>> food_list = ‘спам спам спам спам спам яйца спам спам’.split()
>>> food_count = defaultdict(int) # значение по умолчанию int равно 0
>>> для еды в списке еды:
… food_count[food] += 1 # прирост значения элемента на 1
…
defaultdict(<тип ‘int’>, {‘eggs’: 1, ‘spam’: 7}))
>>>
В следующем примере мы начнем со списка штатов и городов. Мы хотим построить словарь, где ключи – это аббревиатуры штатов, а значения – это списки всех городов этого штата. Чтобы построить этот словарь списков, мы используем пиктограмму по умолчанию с заводом-изготовителем списка по умолчанию. Для каждого нового ключа создается новый список.
>>> из коллекций импортировать по умолчанию
>>> city_list = [(‘TX’, ‘Austin’), (‘TX’, ‘Houston’), (‘NY’, ‘Albany’), (‘NY’, ‘Syracuse’), (‘NY’, ‘Buffalo’), (‘NY’, ‘Rochester’), (‘TX’, ‘Dallas’), (‘CA’, ‘Sacramento’), (‘CA’, ‘Palo Alto’), (‘GA’, ‘Atlanta’)].
>>>
>>> city_by_state = defaultdict(list)
>>> для штата, город в списке City_list:
… cities_by_state[state].append(city)
…
для state, cities in cities_by_state.iteritems():
…состояние печати, ‘, ‘, ‘, присоединиться к (городам)
…
Нью-Йорк Олбани, Сиракузы, Буффало, Рочестер.
Калифорния Сакраменто, Пало-Альто
Атланта-ГАА
Ти-Экс Остин, Хьюстон, Даллас.