Объединить список чисел в строку, сохранить общее расстояние между элементами и символами - PullRequest
0 голосов
/ 07 марта 2019

Я работаю со списком чисел, где каждое однозначное число было отформатировано так, чтобы оно имело 2 символа, то есть «9», «20», «1» и т. Д.

Моя проблема заключается в том, что когда я превращаю список в строку, через str.join новая строка сохраняет правильный интервал при печати, но для построения графика это не так. Я мог бы просто добавить начальный ноль, чтобы сохранить целостность, но в эстетических целях я хочу сохранить однозначные числа.

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

Текст печатается так (идеальный интервал, одинаковой ширины):

 1  3  4  2  2  4  4  2  1  1  1  1  1  1  6 14 11 16 16 10  5  4  3  3  6

 2  4  4  4  3  5  5  3  1  2  1  1  1  3 14 18 13 21 20 12 10  6  4  4  8

Но графики вроде этого (где общий интервал и ширина отключены).

1 3 4 2 2 4 4 2 1 1 1 1 1 1 6 14 11 16 16 10 5 4 3 3 6

2 4 4 4 3 5 5 3 1 2 1 1 1 3 14 18 13 21 20 12 10 6 4 4 8

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

q = [1, 3, 4, 2, 2, 4, 4, 2, 1, 1, 1, 1, 1, 1, 6, 14, 11, 16, 16, 10, 5, 4, 3, 3, 6]

q1 = [2, 4, 4, 4, 3, 5, 5, 3, 1, 2, 1, 1, 1, 3, 14, 18, 13, 21, 20, 12, 10, 6, 4, 4, 8]

ddd = ['{:2}'.format(x) for x in q]
dddd = ['{:2}'.format(x) for x in q1]


q3 = " ".join(['{:>2}'.format(x) for x in ddd])
q4 = " ".join(['{:>2}'.format(x) for x in dddd])

Рис для справки

enter image description here

Текстовый код печати:

ax.text(0.035, 0.97, q3, horizontalalignment='left',
    verticalalignment='baseline', fontsize=9.5, transform=ax.transAxes)
ax.text(0.035, 0.92, q4, horizontalalignment='left',
        verticalalignment='baseline', fontsize=9.5, transform=ax.transAxes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...