У меня есть функция, которая использует pformat()
преобразовать словарь в строку (значение: строка будет позже вставлена write()
в .py
файле).Отступа pformat() выход
Так MY_DCT = {1: 11, 2: 22, 3: 33}
станет строка, как это:
MY_DCT = {
1: 11,
2: 22,
3: 33}
Есть требования 2 для функции:
- Dict элементы должны быть отображены после первой строки.
- Элементы должны быть отступом от 4 белых пробелов.
Вот функция:
import pprint
def f(obj_name, obj_body_as_dct):
body = '{\n' + pprint.pformat(obj_body_as_dct, indent=4, width=1)[1:]
name_and_equal_sign = obj_name + ' = '
return name_and_equal_sign + body + '\n\n'
d = {1: 11, 2: 22, 3: 33}
print(f('MY_DCT', d))
Если indent=0
я получаю эту строку:
MY_DCT = {
1: 11,
2: 22,
3: 33}
Если indent=4
я получаю эту строку:
MY_DCT = {
1: 11,
2: 22,
3: 33}
Я проверил parameters от pformat()
, но я не мог понять, как сделать правильное количество пробелов в каждой строке.
Я знаю, что я могу использовать replace()
, +' '
и т.д., чтобы исправить строку, но им интересно, где это дополнительные пробелы пришли и если я могу избавиться от него, установив правильно параметры (если это вообще возможно, то есть).
Примечание: Если есть лучший способ достичь вышеуказанного, дайте мне знать.
Попробуйте это: 'печать (pp.pformat ({1:11, 2:22, 3:33}, отступа = 0, ширина = 1)) ', с' indent', идущим от 0 до 2. Вы заметите, он применяет еще одно пробел в первой строке. Это способ «pformat()». –
@ user5061 Вы пытались использовать мой код Python? Я смог исправить вашу проблему просто пробелом. – logic