Как добавить элемент в словарь Python

Словари — структура данных. Внутри нее хранятся элементы по принципу «ключ-значение».

При работе со словарями у вас, возможно, возникал вопрос — а как добавить элемент в словарь. В этой статье вы найдете ответ.   

Также мы поговорим об основах, о том, как словари работают. И конечно же, разберем, как добавить элемент в словарь. К концу статьи вы станете экспертом в этом деле!

Словари. Краткое введение

Структура словаря позволяет вам привязывать ключи к значениям. Это довольно полезно — можно использовать ключ как ярлык. То есть, если вы хотите получить доступ к какому-то значению, вам нужно просто указать соответствующий ключ. 

Словари обычно используются для данных, которые связаны друг с другом. Например, журнал посещаемости студента или цвета ковров, которые вы бы хотели купить.

Словарь выглядит следующим образом:

 scones = {
  "Фрукты": 22,
  "Пустая": 14,
  "Корица": 4,
  "Сыр": 21
 }

В этом словаре содержится четыре ключа и четыре значения. Ключи хранятся в виде строки и находятся в левом столбце. Значения же хранятся в правом столбце и привязаны к соответствующим ключам.

И все же — как добавить элемент в словарь? Давайте разберемся.

Как добавить элемент в словарь

Чтобы добавить элемент в словарь, вам нужно привязать значение к новому ключу.

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

add(), insert() и append() вам не помощники. Тут необходимо создать новый ключ. Позже он будет использоваться для хранения значения.

Добавляются элементы в словарь так:

dictionary_name[key] = value

Рассмотрим пример, чтобы разобраться. В нашем словаре было четыре пары ключ-значение. Этот словарь отражает количество булочек, которые продаются в кафе.

Допустим, мы испекли 10 вишневых булочек.

Теперь нам нужно внести их в словарь. Сделать это можно так:

scones = {
	"Фрукты": 22,
	"Пустая": 14,
	"Корица": 4,
	"Сыр": 21
}
scones["Вишня"] = 10
print(scones)

Вывод: 

 {'Фрукты': 22, 'Овощи': 14, 'Корица': 4, 'Сыр': 21, 'Вишня': 10}

Как видите, мы добавили в словарь ключ Вишня и присвоили ему значение 10.

Сперва мы объявили словарь scones, хранящий информацию о булочках, которые доступны к заказу в нашем кафе. Потом мы добавили в наш словарь ключ

Вишня и присвоили ему значение 10:

 scones["Вишня"] = 10

И, наконец, мы вывели в консоль обновленную версию словаря. 

Заметьте, что в выводе наш словарь не упорядочен. Это происходит из-за того, что данные, хранящиеся в словаре, в отличие от списка, не упорядочены.

Совет: добавление и обновление происходит одинаково

Тем же способом мы можем обновить значение ключа. Допустим, мы испекли еще 10 булочек с корицей. Обновить значение этого ключа можно так:

scones = { "Фрукты": 22, "Пустая": 14, "Корица": 4, "Сыр": 21 } scones["Корица"] = 14 print(scones)

Вывод: 

 {'Фрукты': 22, 'Пустая': 14, 'Корица': 14, 'Сыр': 21}

То есть, тем же способом мы можем установить новое значение какому-либо ключу. В нашем случае мы присвоили Корица значение 14.

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Подробнее

×

python — Добавить элемент в начало словаря

Вопрос задан

Изменён 8 месяцев назад

Просмотрен 659 раз

Допустим у нас есть вот такой словарь:

d = {'one': 1, 'two': 2, 'three': 3}

Как нам добавить значение на начало словаря. Стандартное присваивание по типу

d['four'] = 4 — Добавит элемент в конец списка.

  • python
  • python-3.x
  • словари

2

если ключи уникальные, то такой код дает необходимый результат:

d = {'one': 1, 'two': 2, 'three': 3}
d1 = {'four':  4}
d, d1 = d1, d
d.update(d1)
d  # {'four': 4, 'one': 1, 'two': 2, 'three': 3}

существующие ключи update перезаписывает

Сделать новый словарь, в который сначала поместить этот новый элемент, а потом остальные.

d = {'one': 1, 'two': 2, 'three': 3}
d1 = {'four':  4}
for k,v in d.items():
    d1[k] = v
print(d1)

Либо использовать OrderedDict

, в нём можно двигать элементы:

from collections import OrderedDict
d = {'one': 1, 'two': 2, 'three': 3}
d1 = OrderedDict(d)
d1['four'] = 4
d1.move_to_end('four', last=False)
d1 = dict(d1)
print(d1)

Либо сделать из словаря список, тогда можно вставить элемент в любую позицию. А потом сделать обратно словарь:

d = {'one': 1, 'two': 2, 'three': 3}
lst = list(d.items())
lst.insert(0, ('four', 4))
d1 = dict(lst)
print(d1)

Вывод везде будет одинаковый:

{'four': 4, 'one': 1, 'two': 2, 'three': 3}

0

Нашёл как по мне самое оптимальное решение проблемы:

d = {"one": 1, "two": 2, "three": 3}
new_dict = {"four": 4} | d
print(new_dict)
# {'four': 4, 'one': 1, 'two': 2, 'three': 3}

Новая фишка в python 3.9.5.

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

python — Как добавить или увеличить запись словаря?

спросил

12 лет, 6 месяцев назад

Изменено 10 месяцев назад

Просмотрено 59 тысяч раз

В настоящее время я снова занимаюсь Python после долгого отсутствия, и мне это нравится. Тем не менее, я снова и снова сталкиваюсь с закономерностью. Я продолжаю думать, что должен быть лучший способ выразить то, что я хочу, и что я, вероятно, делаю это неправильно.

Код, который я пишу, имеет следующий вид:

# foo — это словарь если foo.has_key(bar): foo[бар] += 1 еще: фу[бар] = 1

Я часто пишу это в своих программах. Моя первая реакция — передать это вспомогательной функции, но очень часто библиотеки Python уже предоставляют такие вещи.

Есть ли какой-то простой синтаксический трюк, который я упустил? Или это так надо делать?

  • питон
  • синтаксис

4

Метод dict get() принимает необязательный второй параметр, который можно использовать для предоставления значения по умолчанию, если запрошенный ключ не найден:

 foo[bar] = foo.get(bar, 0 ) + 1
 

4

Использовать defaultdict :

 из коллекций import defaultdict
foo = defaultdict (целое число)
foo[бар] += 1
 

В Python >= 2. 7 у вас также есть отдельный класс Counter для этих целей. Для Python 2.5 и 2.6 вы можете использовать его портированную версию.

2

Я провел несколько сравнений времени. Почти равны. Однако однострочная команда .get() является самой быстрой.

Выход:

 получить 0,543551800627
исключение 0.587318710994
ключ 0,598421703081
 

Код:

 время импорта
импортировать случайный
RANDLIST = [random.randint(0, 1000) для i в диапазоне (10000)]
деф получить():
    Фу = {}
    для бара в RANDLIST:
        foo[бар] = foo.get(бар, 0) + 1
исключение исключения():
    Фу = {}
    для бара в RANDLIST:
        пытаться:
            foo[бар] += 1
        кроме KeyError:
            фу[бар] = 1
деф хэшкей():
    Фу = {}
    для бара в RANDLIST:
        если foo.has_key(bar):
            foo[бар] += 1
        еще:
            фу[бар] = 1
деф основной():
    print 'get', timeit.timeit('get()', 'из __main__ import get', number=100)
    напечатать 'исключение', timeit. timeit('исключение()', 'исключение из __main__ импорта', число = 100)
    print 'haskey', timeit.timeit('haskey()', 'from __main__ import haskey', number=100)
если __name__ == '__main__':
    главный()
 

3

Вы также можете воспользоваться структурой управления при обработке исключений. Исключение KeyError создается словарем при попытке присвоить значение несуществующему ключу:

 my_dict = {}
пытаться:
    my_dict['а'] += 1
кроме KeyError, err: # в 2.6: `кроме KeyError as err:`
    мой_дикт ['а'] = 1
 

2

Для Python >= 2.5 вы можете сделать следующее:

 foo[bar] = 1, если bar не в foo, иначе foo[bar]+1
 

2

Я не знаю, как это пытались сделать, но если вам нужно добавить элементы в ключи dict…

 индикаторDict = {}
индикаторDict[0] = 'Лэнгфорд'
индикаторDict[1] = 'Эстер'
индикаторDict[3] = 14
 

Добавление к нему элементов, будь то итеративно или других типов:

 индикаторDict[0] = np. append(indicatorDict[0],'Auditorium')
индикаторDict[1] = np.append(indicatorDict[1],'Duflo')
индикаторDict[3] = np.append(indicatorDict[3],'ноябрь')
 

Печать…

 {0: array(['Лэнгфорд', 'Аудитория'], dtype='

Я избегал 3-й клавиши в Dict, чтобы показать, что при необходимости клавиши можно перепрыгивать с одного шага на другой... 🙂 Надеюсь, поможет!

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Как добавить в словарь на Python — на примере

  • Время чтения: