Это словарь
cars = {'A':{'speed':70,
'color':2},
'B':{'speed':60,
'color':3}}
Используя это for loop
for keys,values in cars.items():
print(keys)
print(values)
Он печатает следующее:
B
{'color': 3, 'speed': 60}
A
{'color': 2, 'speed': 70}
Но я хочу, чтобы программа напечатала это так:
B
color : 3
speed : 60
A
color : 2
speed : 70
Я только начал изучать словари, поэтому я не уверен, как это сделать.
python
printing
dictionary
Jett
источник
источник
cars = {1:4, 2:5}
тоcars[x]
есть целое число отображается на клавишу ,x
а не набор , отображенный на ключx
. В этом случае вам не нужно использоватьfor y in cars[x]:
строку, потому что вы получаете только одно значение, если только вы не используете что-то вроде списка или набора целых чисел, тогда оно должно работать. Извините, прошло несколько месяцев, поэтому я не могу полностью вспомнить, как я пришел к заключению моего предыдущего комментария. Вы можете прислать мне свой код, и я смогу помочь.Вы можете использовать
json
модуль для этого.dumps
Функция в этом модуле преобразует объект JSON в правильно отформатированной строки , которые затем можно распечатать.Выход выглядит как
В документации также указывается множество полезных опций для этого метода.
источник
print(json.dumps(cars, indent=4, ensure_ascii=False))
потому что иначе не-ASCII символы не читаются.Более обобщенное решение, которое обрабатывает произвольно глубоко вложенные диктанты и списки:
Это производит вывод:
Я столкнулся с аналогичной потребностью и разработал более надежную функцию для себя. Я включил это здесь в случае, если это может иметь значение для другого. В ходе проверки носа я также счел полезным указать поток вывода в вызове, чтобы вместо него можно было использовать sys.stderr.
Используя эту функцию, вывод OP выглядит следующим образом:
который я лично нашел более полезным и описательным.
Учитывая немного менее тривиальный пример:
Запрошенное решение OP дает это:
тогда как «улучшенная» версия дает следующее:
Я надеюсь, что это даст некоторую ценность следующему человеку, ищущему этот тип функциональности.
источник
pprint.pprint()
здесь тогда?У вас есть вложенная структура, поэтому вам нужно также отформатировать вложенный словарь:
Это печатает:
источник
pprint.pprint()
хороший инструмент для этой работы:источник
источник
Это будет работать, если вы знаете, что дерево имеет только два уровня:
источник
Проверьте следующий однострочник:
Вывод:
источник
sys.modules
, но я потерпел неудачу. Хотите попробовать?Я предпочитаю чистое форматирование
yaml
:вывод:
источник
pip install PyYAML
сначала.источник
источник
Вот мое решение проблемы. Я думаю, что это похоже на подход, но немного проще, чем некоторые другие ответы. Он также учитывает произвольное количество под-словарей и, похоже, работает для любого типа данных (я даже протестировал его в словаре, в котором функции были значениями):
источник
Модификация кода MrWonderful
источник