请把下面的列表转换为html,在python中将列表转换为HTML表的最简单方法是什么?...

我会把你的问题分成两部分:给定一个“平面列表”,生成一个子列表列表,其中子列表具有给定的长度,并且整个列表可以按“行主要”顺序(第一个和第三个示例)或“列主要”(第二个示例)排列

给定一个包含字符串项的子列表列表,从中生成一个HTML表。

我认为这两项任务是非常明显的,把它们搞得一团糟没有什么好处(也没有什么损失),所以如果有任何精心设计的图书馆搞得这样一团糟,我会感到惊讶。

对于第1点,row major很简单:def row_major(alist, sublen):

return [alist[i:i+sublen] for i in range(0, len(alist), sublen)]

少校也不错:def col_major(alist, sublen):

numrows = (len(alist)+sublen-1) // sublen

return [alist[i::sublen] for i in range(numrows)]

例如…:L = ['one','two','three','four','five','six','seven','eight','nine']

for r in row_major(L, 3): print r

print

for r in col_major(L, 3): print r

for r in row_major(L, 4): print r

生成三个所需的结果(每行一个列表,尚未以HTML格式显示;-)。

问题的后半部分——从字符串列表中生成一个HTML表:def html_table(lol):

print '

for sublist in lol:

print '

'

print '

'.join(sublist)

print '

'

print '

'

如果希望将其作为单个字符串而不是打印出来,请将每个print更改为yield,并使用'\n'.join(html_table(lol))。

现在,您有了两个简单、有用、可用和可重用的构建块——当您想将数据显示为HTML表以外的任何形式时,以及当要显示为HTML表的列表列表来自于任何其他构建方法时,将它们分开将非常有用。将它们组合在一起在应用程序代码中很容易实现,但当然也很容易实现一个简单的“粘合例程”,例如,假设基于yield的html_table版本需要单个字符串结果:def list_to_html_table(alist, sublength, column_major=False):

if column_major:

lol = col_major(alist, sublength)

else:

lol = row_major(alist, sublength)

return ''.join(html_table(lol))

这种构建块的方法真的比用大块的糊状胶水来编程更好、更愉快、更高效吗。。。?-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值