Python как вывести словарь?
Python 3, словарь с названиями и числами, надо рас печатать каждую пару отдельно, чтобы сначала название потом число и без этих фигурных скоб
Ваш вопрос
Python 3, словарь с названиями и числами, надо рас печатать каждую пару отдельно, чтобы сначала название потом число и без этих фигурных скоб
Переберите пары через items() и напечатайте их в цикле:
data = {'чай': 3, 'кофе': 7}
for name, count in data.items():
print(name, count)
Получатся две строки без внешних фигурных скобок. Если нужна подпись или разделитель, используйте print(f'{name}: {count}'). Обычный print(data) выводит представление всего словаря, поэтому скобки в нём ожидаемы.
Порядок обхода обычного словаря соответствует порядку добавления элементов. Если требуется сортировка по названию, переберите sorted(data.items()), когда названия сравнимы между собой. Для вложенных структур такой цикл покажет вложенные значения в их обычном представлении; более сложное оформление нужно задавать отдельно. Для пустого словаря цикл не выполнится.
Для вывода каждой пары на отдельной строке используйте цикл по data.items(). Он даёт одновременно имя и связанное с ним значение. Внутри цикла можно вызвать print(name, value) или f строку с нужным разделителем. Это отличается от print(data), который показывает весь словарь как один объект с фигурными скобками.
Если пройти обычным циклом for name in data, вы получите только имена. Значение придётся извлекать отдельно через data[name]. Когда нужны обе части пары, метод items() делает намерение понятнее и избавляет от лишнего обращения по имени. Метод values() пригодится, если требуются только значения.
Обычный словарь сохраняет порядок добавления элементов. Замена значения существующего элемента не переносит его в конец, а удаление и повторное добавление уже меняют позицию. Если нужен алфавитный порядок, его следует задать явно. При этом все сравниваемые названия должны поддерживать такое сравнение: смешанные типы могут привести к ошибке.
Для отладки большого вложенного словаря можно использовать pprint. Он переносит длинные структуры и делает вложенность заметнее, но не превращает данные в готовую пользовательскую таблицу. Если порядок вывода существенен, обратите внимание на настройку сортировки имён. Для передачи данных другой программе часто нужен JSON, который создают через json.dumps, а не строковое представление Python.
В вашем случае достаточно короткого цикла и выбранного разделителя между названием и числом. Пустой словарь не выведет ни одной строки, поэтому при необходимости добавьте отдельное сообщение об отсутствии данных. Не удаляйте фигурные скобки из готовой строки заменой символов: так можно повредить значения, внутри которых эти символы действительно встречаются.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Ответить на вопрос