#python #list #text
#python #Список #текст
Вопрос:
l = list(range(1, 101))
chunks = [l[i:i 10] for i in range(0, len(l), 10)]
print(*chunks, sep='rn')
Как я могу распечатать этот список в виде текста, выровненного по правому краю, в 10 столбцах?
Я пробовал 'r' right-adjust(>)
и rjust
, но оба выдают мне ошибку.
Комментарии:
1. Ваш код работает на моей машине. На выходе получается 10 списков, которые содержат 10 целых чисел в каждом списке.
2. Мне нужно, чтобы он был скорректирован вправо как текст.
3. Что вы имеете в виду? Не могли бы вы показать нам свой ожидаемый результат?
4. вы имеете в виду число, правильно заданное в каждом столбце? как насчет
,
сохранить или нет? можете ли вы привести пример вывода?
Ответ №1:
Для вашего требования: "print this list as right aligned text in 10 columns"
.
В моем понимании, вам может понадобиться что-то подобное:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
Если это так, вы можете достичь этого rjust
, сначала вам нужно преобразовать int
в str
:
width = 3
sep = ' '
chunks = [sep.join(map(lambda x: str(x).rjust(width), l[i:i 10])) for i in range(0, len(l), 10)]
Я определил width
, sep
, на случай, если вы захотите скорректировать.
Надеюсь, это вам поможет, и прокомментируйте, если у вас возникнут дополнительные вопросы. 🙂