Python分组列显示

2024-04-25 19:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组数据

data = (1,2,3,4,5,6,7,8,9,10)

通常在python中,我会将它们分组,以便跨n列的行显示:

cols = 4
grouped = izip_longest(*(iter(data),)*cols)

这给了我一个很好的行显示:

grouped = ( (1,2,3,4), (5,6,7,8), (9,10,None,None) )

在模板化的网站上

1  2  3  4
5  6  7  8
9  10

现在我正试着用另一种显示方式来表示我的想法—向下跨n行显示列

1  4  7  10
2  5  8  
3  6  9

因为这是用于web模板,所以我需要生成一组数据:

grouped = ( (1,4,7,10), (2,5,8,None), (3,6,9,None) )

老实说,我完全不知道如何最好地处理这个问题。你知道吗


Tags: 数据none模板webdatalongest网站老实
2条回答

您需要调整长度,然后重新拉链:

>>> zip(*izip_longest(*[iter(data)]*3))
[(1, 4, 7, 10), (2, 5, 8, None), (3, 6, 9, None)]

你只需要给^{}打个电话:

In [10]: rows = 3

In [11]: zip(*itertools.izip_longest(*(iter(data),)*rows))
Out[11]: [(1, 4, 7, 10), (2, 5, 8, None), (3, 6, 9, None)]

基本上,它使用与您完全相同的算法,然后transposes得到结果。你知道吗

相关问题 更多 >