Перейти к содержимому

Как ввести словарь с клавиатуры питон

  • автор:

Ввод данных словаря с клавиатуры

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

Отслеживать
26.2k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
задан 27 янв 2021 в 16:02
StopTalking StopTalking
9 1 1 серебряный знак 3 3 бронзовых знака
вы хотя бы написали что именно в словаре должно храниться
27 янв 2021 в 16:02

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

data = dict() while True: key = input('введите ключ: ') value = input('введите значение: ') data[key] = value 

только какой-нибудь механизм выхода из цикла прикрутить стоит

Отслеживать
ответ дан 27 янв 2021 в 16:04
37.3k 4 4 золотых знака 28 28 серебряных знаков 72 72 бронзовых знака

Подскажите, как мне остановить этот цикл? То есть я ввёл достаточное количество ключей и значений и хочу получить заполненный словарь.

28 янв 2021 в 7:51

@StopTalking, например можете проверять что в качестве ключа ввели stop и делать if key == ‘stop’: break — логику уже вам выбирать то, универсальных средств нет

28 янв 2021 в 8:43

Спасибо я понял и немного изменил. Я написал код, но не получается выбрать те даты, которые входят в промежуток 19 века, можете посмотреть, как лучше поменять? data = dict() while True: key = (input(‘введите дату: ‘)) value = input(‘введите событие: ‘) data[key] = value if input(‘Продолжать? /Нет ‘) == ‘Нет’ : # при нажатии «enter» заполнение словаря # продолжится, при вводе «Нет» цикл прервется break if 1799 — ‘)

Словари в Python

В этом руководстве вы узнаете всё о словарях в Python: как их создавать, как добавлять, удалять, как получать из них элементы, а еще познакомитесь со встроенными методами словарей.

Словарь — это неупорядоченный набор элементов. Элемент словаря представляет собой пару ключ: значение . Словари оптимизированы для получения значений по заданному ключу.

Как создать словарь

Чтобы создать словарь в Python, необходимо прописать элементы внутри фигурных скобок <> и разделить их запятыми.

В элементе содержится ключ и соответствующее значение, они записываются так: (ключ: значение) .

В словарях значения могут повторяться и быть любого типа. Ключи же повторяться не могут и должны быть неизменяемым типом (строками, числовыми типами и кортежами с неизменяемыми элементами).

# пустой словарь my_dict = <> # словарь с ключами — целочисленными значениями my_dict = # словарь с ключами разных типов my_dict = # используем dict() my_dict = dict() # словарь из последовательности, где элементы являются парами my_dict = dict([(1,'яблоко'), (2,'мяч')])

Как вы увидели выше, мы можем создать словарь с помощью встроенной функции dict() .

Как получить элементы из словаря

В отличие от других типов данных, где для доступа к элементам используется индексация, в словаре используются ключи. Они используются внутри квадратных скобок или в качестве аргумента метода get() .

При использовании квадратных скобок и отсутствии элемента в словаре вызывается ошибка KeyError. При использовании метода get() и отсутствии элемента возвращается None .

# get vs. [] для получения элементов my_dict = # Вывод: Jack print(my_dict['Имя']) # Вывод: 26 print(my_dict.get('Возраст')) # Попытка получить ключ, которого не существует, приводит к ошибке # Вывод: None print(my_dict.get('Адрес')) # KeyError print(my_dict['Адрес'])

Вывод:

Ваня
26
None
Traceback (most recent call last):
File "", line 15, in
print(my_dict['Адрес'])
KeyError: 'Адрес'

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

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

Если добавляемый ключ есть в словаре, значение элемента изменяется. Если же такого ключа еще нет, то в словарь добавляется новая пара (ключ: значение) .

# Изменение словаря my_dict = # обновляем значение my_dict['Возраст'] = 27 # Вывод: print(my_dict) # добавляем элемент my_dict['Адрес'] = 'Центр города' # Вывод: print(my_dict)

Вывод:

Как удалить элементы из словаря

Удалить нужный элемент словаря по ключу можно с помощью метода pop() . Этот метод удаляет элемент с соответствующим ключом и возвращает значение.

Удалить произвольную пару (ключ, значение) можно с помощью метода popitem() . Очистить весь словарь за один раз можно с помощью метода clear() .

Также можно использовать ключевое слово del для удаления отдельных элементов или же всего словаря.

# создаем словарь squares = # удаляет определенный элемент, возвращает его значение # Вывод: 16 print(squares.pop(4)) # Вывод: print(squares) # удаляет произвольный элемент, возвращает (ключ, эзначение) # Вывод: (5, 25) print(squares.popitem()) # Вывод: print(squares) # удаляет все элементы squares.clear() # Вывод: <> print(squares) # удаляет весь словарь del squares # выдает ошибку print(squares)

Вывод:

16

(5, 25)

<>
Traceback (most recent call last):
File "", line 30, in
print(squares)
NameError: name 'squares' is not defined

Методы словарей

В таблице ниже указаны доступные методы словарей. Некоторые из них мы уже использовали в примерах выше.

Метод

Что делает

Удаляет все элементы из словаря

Возвращает неглубокую копию словаря

Возвращает словарь с ключами из seq и значениями, равными v (по умолчанию None )

Возвращает значение ключа key . Если key не существует, возвращает d (по умолчанию None )

Возвращает новый объект элементов словаря в формате (ключ, значение)

Возвращает новый объект с ключами словаря

Удаляет элемент с ключом key и возвращает его значение или d , если key не найден. Если d не было обозначено и key не найден, вызывает ошибку KeyError.

Удаляет и возвращает произвольную пару (ключ, значение) . Вызывае ошибку KeyError, если словарь пустой.

Если ключ key есть в словаре, возвращает соответствующее ему значение. Если нет, добавляет в словарь элемент с ключом key и значением d и возвращает d (по умолчанию None )

Обновляет словарь имеющимися парами ключ/значение из other , перезаписывая существующие ключи

Возвращает новый объект со значениями словаря

marks = <>.fromkeys(['математика', 'русский язык', 'физика'], 0) # Вывод: print(marks) for item in marks.items(): print(item) # Вывод: ['русский язык', 'математика', 'физика'] print(list(sorted(marks.keys())))

Вывод:


('математика', 0)
('русский язык', 0)
('физика', 0)
['русский язык', 'математика', 'физика']

Представление словарей

Представление словарей — элегантный и лаконичный способ создать новый словарь из итерируемого объекта.

Представление словарей состоит из выражения ключ: значение , за которым следует for , и всё это — внутри фигурных скобок <> .

Создадим словарь с парами чисел и их квадратов в качестве элементов:

squares = print(squares)

Вывод:

То же самое можно сделать иначе, но так будет длинее:

squares = <> for x in range(6): squares[x] = x*x print(squares)

Вывод:

В представлении словарей выражений for и if опционально может быть больше.

Необязательное выражение if поможет отфильтровать элементы для создания нового словаря.

Давайте создадим словарь только с квадратами только нечетных чисел:

# Представление словарей с опциональным if odd_squares = print(odd_squares)

Вывод:

Другие операции со словарями

Проверка на вхождение в словарь

Проверить, есть ли ключ в словаре, можно с помощью ключевого слова in . Отметим, что проверку на вхождение можно провести только над ключами, не над значениями

squares = # Вывод: True print(1 in squares) # Вывод: True print(2 not in squares) # Проверка на вхождение позволяет проверять только ключи, не значения # Вывод: False print(49 in squares)

Вывод:

True
True
False
Итерирование по словарю

Мы можем пройтись по всем ключам словаря, используя цикл for .

squares = for i in squares: print(squares[i])

Вывод:

1
9
25
49
81

Встроенные функции для словарей

Встроенные функции all() , any() , len() , cmp() , sorted() и т. д. часто используются со словарями для разных задач.

Функция

Описание

Возвращает True , если все ключи словаря = True (или если словарь пуст)

Возвращает True , если хотя бы один ключ словаря = True . Если словарь пуст, возвращает False .

Возвращает длину (количество элементов) словаря

Сравнивает элементы двух словарей (не работает в Python 3)

Возвращает новый список с отсортированными ключами словаря

# Встроенные функции для словарей squares = # Вывод: False print(all(squares)) # Вывод: True print(any(squares)) # Вывод: 6 print(len(squares)) # Вывод: [0, 1, 3, 5, 7, 9] print(sorted(squares))

Вывод:

False
True
6
[0, 1, 3, 5, 7, 9]

Добавление новых ключей в словарь в Python

В Python словари представляют собой уникальные пары ключ-значение. Иногда возникает необходимость добавить новый ключ в уже существующий словарь. Для некоторых новичков это может стать проблемой, так как они могут попытаться использовать метод .add() , который не существует для словаря.

Возможно, был создан словарь с именем fruit примерно такой:

fruit =

И есть желание добавить новый ключ (например, «orange») со значением 4 к этому словарю. В Python это легко сделать, как показано ниже:

fruit["orange"] = 4

Теперь словарь fruit выглядит так:

fruit =

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

Артём Санников

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Языки программирования › Python › Словари › Добавление новых пар «ключ-значение» в словарь Python

Добавление новых пар «ключ-значение» в словарь Python

Словари в Python относятся к динамическим структурам данных, так как в словарь можно в любое время добавить новые пары «ключ-значение». Чтобы добавить новую пару, необходимо указать имя словаря, а затем в квадратных скобках [ ] указать новый ключ и значение.

В качестве примера добавим новую пару «ключ-значение» в словарь man

# Словарь с параметрами мужчины man = # Добавляем в словарь новую пару man[«height»] = «200» # Выводим обновлённый словарь print(man) # Финальный результат в консоли

Записи по теме

  • Словарь в словаре Python
  • Список в словаре Python
  • Список словарей в Python
  • Перебор всех значений в словаре Python
  • Упорядоченный перебор словаря в Python
  • Перебор всех ключей в словаре Python
  • Перебор всех пар «ключ-значение» в словаре Python
  • Удаление пар «ключ-значение» в словаре Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *