#python
Вопрос:
В настоящее время у меня есть список списков, и мне нужно поместить их в столбцы, но я не могу использовать панд для создания столбцов. В настоящее время у меня есть список списков, который выглядит следующим образом:
list_a = [['face1', 'face2', 'object', 'scene'], ['1', '7', '6', '5'], ['4', '3', '2', '8'], ['1', '3', '2', '4'], ['1', '2', '3', '4']]
и я хочу, чтобы это выходило в таких колонках, как эта
face1 face2 object scene
1 4 1 1
7 3 3 2
6 2 2 3
5 8 4 4
Комментарии:
1. Есть ли у вас какие-либо требования к выравниванию?
2. Какой код вы уже пробовали? (Так что, как я уверен, вы знаете, это не должна быть служба написания кода.)
3. Это всего лишь вопрос форматирования строк.
for x in list_a: print(*x, sep='t')
этого достаточно, если вас не очень волнует точное форматирование.4. Вы уверены, что порядок столбцов-это то, что вам нужно ? Это не то, как Панды делают столы. В этом случае перед печатью вам следует переставить столбцы.
Ответ №1:
Вы можете использовать форматирование строк для печати столбцов.
for row in list_a:
print(''.join(f'{x:^8}' for x in row)) # 8-character wide centered columns
# output
face1 face2 object scene
1 7 6 5
4 3 2 8
1 3 2 4
1 2 3 4
Ответ №2:
попробуйте использовать center
:
list_a = [['face1', 'face2', 'object', 'scene'], ['1', '7', '6', '5'], ['4', '3', '2', '8'], ['1', '3', '2', '4'],
['1', '2', '3', '4']]
for item in list_a:
for subitem in item:
print(subitem.center(10), end='')
print()
выход :
face1 face2 object scene
1 7 6 5
4 3 2 8
1 3 2 4
1 2 3 4
Примечание : Если ваш список содержит значение, отличное от string, не забудьте преобразовать его в string перед вызовом .center
:
print(str(subitem).center(10), end='')