Форум сайта python.su
Python 3. PyQt4
Есть многомерные списки, типа:
d = [[123, 456, 789], [444, 555, 669], [98, 535, 376], [444, 495, 226]]
def on_click_7(self): def aps(i): i = ''.join(map(str, i)) data.append(str(i)) data = [] self.pole_vivod.clear() # очистка поля вывода aps(['<table>']) for i in range(len(d)): for j in range(len(d[i])): j = '<td>'+str(j)+'<\td>' i = '<tr>'+str(i)+'<\tr>' aps([d]) aps(['</table>']) print('<hr>') for i in data: self.pole_vivod.append(str(i))
Отредактировано Kyrym (Март 2, 2017 15:41:49)
Офлайн
Можно воспользоваться готовым решением, на базе pandas:
import pandas as pd column_names = ['one', 'two', 'three', 'four'] row_names = ['bob', 'mike', 'john', 'etc1', 'etc2', 'etc3', 'etc4'] df = pd.DataFrame(your_array, index=prices, columns=days) # your_array dim assumed to be 7x4 df.to_html() # returns html-table
Отредактировано scidam (Март 3, 2017 01:28:56)
Офлайн
Kyrym
Подобная задача (внедрить набор данных в HTML) довольно стандартна и распространена. Динамическое создание HTML-кода - это стандартная практика в веб программировании, поэтому будет логичным для вашей задачи задействовать специально для этого созданные средства - шаблонизаторы, коих тысячи. Я рекомендую jinja2
Отредактировано FishHook (Март 3, 2017 05:28:20)
Офлайн
Вот решение моей задачи без сторонних модулей:
def on_click_7(self): def aps(i): i = ''.join(map(str, i)) data.append(str(i)) data = [] self.pole_vivod.clear() # очистка поля вывода aps(['<table border ALIGN=CENTER WIDTH=95%>']) for i in d: aps(['<tr>']) for j in i: aps(['<td ALIGN=CENTER>'+str(j)+'</td>']) aps(['</tr>']) aps(['</table>']) data = ''.join(map(str, data)) # объединение списка self.pole_vivod.append(data)
Офлайн