Используя Python 3, выровняйте списки в функции PrettyTable add_row - PullRequest
0 голосов
/ 02 марта 2020

Я использую Python 3 и PrettyTable для создания таблицы. Как я могу преобразовать список в отдельные элементы списка в функции PrettyTable add_row (в основном, получить плоский список вместо списка списков)? Я заметил, что есть функции для выравнивания списка списков, но проблема в том, что родительский список служит входом в функции add_row. Каждая строка для списка создается вручную, поэтому я не хочу создавать функцию, которая будет создавать каждую строку таблицы целиком.

Вот код для справки:

from beautifultable import BeautifulTable
from prettytable import PrettyTable

list = ["dog","is","black"] # to be used as 2nd, 3rd, and 4th words

x = PrettyTable()
x.title = "TEST TABLE"
x.field_names = ["1st word", "2nd word", "3rd word", "4th word"]

x.add_row(["the","dog","is","brown"])
x.add_row(["he","is","over","there"])
x.add_row(["1","9","3","1"])
x.add_row(["the",list[0],list[1],list[2]])
#x.add_row(["the",list])

print(x)

Вывод выглядит следующим образом:

+-------------------------------------------+
|                 TEST TABLE                |
+----------+----------+----------+----------+
| 1st word | 2nd word | 3rd word | 4th word |
+----------+----------+----------+----------+
|   the    |   dog    |    is    |  brown   |
|    he    |    is    |   over   |  there   |
|    1     |    9     |    3     |    1     |
|   the    |   dog    |    is    |  black   |
+----------+----------+----------+----------+

Я могу использовать следующий код:

x.add_row (["the", список [0], list [1], list [2]])

Но вместо того, чтобы вручную печатать каждое обозначение элемента списка ('list[0]', 'list[1]', et c.), I ' Я бы предпочел ссылаться на список один раз. Поэтому, когда я пытаюсь использовать следующий код:

x.add_row (["the", список])

, я получаю следующую ошибку:

Traceback (последний вызов был последним): файл "test.py", строка 16, в файле x.add_row (["the", list]) "/anaconda/lib/python3.6/ site-packages / prettytable / prettytable.py ", строка 928, в add_row" Строка имеет неверное количество значений, (фактическое)% d! =% d (ожидаемое) "% (len (строка), len (self._field_names) )) Исключение: строка содержит неверное количество значений, (фактическое) 2! = 4 (ожидаемое)

Я понимаю, что формат моего кода дает только 2 ввода, но как я могу отформатировать каждое из них? строка add_row, чтобы я мог сгладить список в функции add_row, чтобы получить 4 входа вместо 2?

Это желаемый результат:

+-------------------------------------------+
|                 TEST TABLE                |
+----------+----------+----------+----------+
| 1st word | 2nd word | 3rd word | 4th word |
+----------+----------+----------+----------+
|   the    |   dog    |    is    |  brown   |
|    he    |    is    |   over   |  there   |
|    1     |    9     |    3     |    1     |
|   the    |   dog    |    is    |  black   |
|   the    |   dog    |    is    |  black   |
+----------+----------+----------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...