Задать вопрос
ipatov_dn
@ipatov_dn

Как в Python сделать вывод таблицей?

th = ['MAC Address', 'IP Address', 'Mode', 'Rate (Mbps)', 'Signal (%)']
td = ['11:11:11:11:11:11', '192.168.0.103', '11n', '65', '100',
      '11:11:11:11:11:11', '192.168.0.103', '11n', '65', '100',
      '11:11:11:11:11:11', '192.168.0.103', '11n', '65', '100',
      '11:11:11:11:11:11', '192.168.0.103', '11n', '65', '100',
      '11:11:11:11:11:11', '192.168.0.103', '11n', '65', '100']


Помогите данный код вывести таблицей th шапка таблицы а в tr содержаться строки с данными
  • Вопрос задан
  • 57881 просмотр
Подписаться 1 Простой 6 комментариев
Решения вопроса 2
@javedimka
Хочу сока
Самый простой способ с помощью Python вывести таблицу с данными в терминале или cmd это установить какой-нибудь модуль для ascii таблиц, например: PrettyTable

$ pip install PrettyTable

Теперь в коде:

from prettytable import PrettyTable  # Импортируем установленный модуль.

# Определяем твою шапку и данные.
th = [...]
td = [...]

columns = len(th)  # Подсчитаем кол-во столбцов на будущее.

table = PrettyTable(th)  # Определяем таблицу.

# Cкопируем список td, на случай если он будет использоваться в коде дальше.
td_data = td[:]
# Входим в цикл который заполняет нашу таблицу.
# Цикл будет выполняться до тех пор пока у нас не кончатся данные
# для заполнения строк таблицы (список td_data).
while td_data:
    # Используя срез добавляем первые пять элементов в строку.
    # (columns = 5).
    table.add_row(td_data[:columns])
    # Используя срез переопределяем td_data так, чтобы он
    # больше не содержал первых 5 элементов.
    td_data = td_data[columns:]

print(table)  # Печатаем таблицу


Вывод:
+-------------------+---------------+------+-------------+------------+
|    MAC Address    |   IP Address  | Mode | Rate (Mbps) | Signal (%) |
+-------------------+---------------+------+-------------+------------+
| 11:11:11:11:11:11 | 192.168.0.103 | 11n  |      65     |    100     |
| 11:11:11:11:11:11 | 192.168.0.103 | 11n  |      65     |    100     |
| 11:11:11:11:11:11 | 192.168.0.103 | 11n  |      65     |    100     |
| 11:11:11:11:11:11 | 192.168.0.103 | 11n  |      65     |    100     |
| 11:11:11:11:11:11 | 192.168.0.103 | 11n  |      65     |    100     |
+-------------------+---------------+------+-------------+------------+


А теперь представь сколько бесполезных разговоров могло быть опущено и времени сэкономлено, если бы у тебя с первого раза получилось нормально вопрос сформулировать? Вот то-то и оно.
Ответ написан
@1011
самое простое - сделать с помощью счетчика:
stop = 4
i = 0
for cell in td:
    print("<td>%s</td>\n" % cell)
    if i == stop: 
        print ("</tr><tr>\n")
        stop == i + 5
    i += 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы