Самый легкий способ превратить список в HTML-таблицу в Python?

Я преобразовал бы строку во все заглавные буквы (с ToUpper), тогда сравнивают это с оригиналом (использование Equals). Должно быть выполнимым в одной строке кода.

return s.Equals(s.ToUpper())

19
задан priestc 25 September 2009 в 02:23
поделиться

3 ответа

Я поклонник правила ДеМоргана, которое берет ваш ex3 и производит ex2. Пустой блок if - это мысленный блок imo. Вы должны остановиться, чтобы прочитать то, что существует - тогда вы должны задаться вопросом, почему.

Если вам нужно оставлять комментарии вроде // Это специально оставлено пустым; тогда код не очень понятен.

Вторая половина проблемы - создать таблицу HTML из списка списков строк:

def html_table(lol):
  print '<table>'
  for sublist in lol:
    print '  <tr><td>'
    print '    </td><td>'.join(sublist)
    print '  </td></tr>'
  print '</table>'

Если вы хотите получить ее как отдельную строку, а не распечатывать, измените каждое print в yield и используйте '\ n'.join (html_table (lol)) .

Теперь у вас есть два простых, полезных, пригодных для использования и многоразового использования строительных блоков - их наличие отдельный пригодится всякий раз, когда вы хотите представить свои данные в виде чего-либо, НО HTML-таблицу, а также всякий раз, когда список-списков для представления в виде HTML-таблицы исходит из любого другого способа его создания. Объединить их легко в коде вашего приложения, но, конечно, также легко выполнить простую «склеивающую процедуру», например, предположив, что версия html_table на основе yield и что желателен результат с одной строкой:

29
ответ дан 30 November 2019 в 03:02
поделиться

Есть несколько библиотек шаблонов (мне нравится Генши, но есть много других).

В качестве альтернативы вы могли бы сделать что-нибудь вроде:

def print_table(data, row_length):
    print '<table>'
    counter = 0
    for element in data:
        if counter % row_length == 0:
            print '<tr>'
        print '<td>%s</td>' % element
        counter += 1
        if counter % row_length == 0:
            print '</tr>'
    if counter % row_length != 0:
        for i in range(0, row_length - counter % row_length):
            print '<td>&nbsp;</td>'
        print '</tr>'
    print '</table>'
2
ответ дан 30 November 2019 в 03:02
поделиться

Maybe manipulate template is easier for toy codes, =p

def get_html_tbl(seq, col_count):
    if len(seq) % col_count:
        seq.extend([''] * (col_count - len(seq) % col_count))
    tbl_template = '<table>%s</table>' % ('<tr>%s</tr>' % ('<td>%s</td>' * col_count) * (len(seq)/col_count))
    return tbl_template % tuple(seq)
0
ответ дан 30 November 2019 в 03:02
поделиться
Другие вопросы по тегам:

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