Перебрать и изменить список списков

Из google-таблиц получаю данные в таком виде:

[['Иван', '253054', '29,84'],
 ['Александр', '246041', '28,56'],
 ['Антон', '324203', '32,02'],
 ['Дмитрий', '311052', '32,33']]

Далее хочу передавать эти данные через телеграм-бота в читаемом виде. Для этого необходимо первому элементу у вложенных списков (имя) в конце добавлять столько пробелов, пока их длина не станет равной 20 символам, а второму и третьему элементу добавлять пробелы спереди, пока их длина не будет равна 7 символам. В результате должно получиться как то так:

Иван              253054  29,84
Александр         246041  28,56
Антон             324203  32,02
Дмитрий           311052  32,33

Задавал подобный вопрос по JS, там мне подсказали как это сделать

x = x.map(
  ([name, i, j]) => name.padEnd(15, " ") + i.padStart(7, " ") + j.padStart(7, " ") + '\n'
)

Теперь понадобилось сделать аналогичное на python. Буду рад любой помощи. Спасибо


Ответы (1 шт):

Автор решения: gil9red

Это можно сделать через функции строки ljust и rjust

Пример:

items = [
    ['Иван', '253054', '29,84'],
    ['Александр', '246041', '28,56'],
    ['Антон', '324203', '32,02'],
    ['Дмитрий', '311052', '32,33']
]
lines = [
    name.ljust(15) + i.rjust(7) + j.rjust(7)
    for name, i, j in items
]
print('\n'.join(lines))

Или через форматирование строк:

lines = [
    f'{name:<15}{i:>7}{j:>7}'
    for name, i, j in items
]

Результат:

Иван            253054  29,84
Александр       246041  28,56
Антон           324203  32,02
Дмитрий         311052  32,33
→ Ссылка