向下打印列表然后再打印

2024-05-18 06:11:08 发布

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

如何用Python打印列表?在

l = [v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14]

v1 v4 v7 v10 v13  
v2 v5 v8 v11 v14  
v3 v6 v9 v12  

列表的长度可能会有所不同,但现在我想以5列格式打印。在


Tags: 列表v3v2v4v1v10v7v5
2条回答

这样的方法应该有效:

>>> def print_list_matrix(lst, row_num):
...     for i in range(row_num):
...         print ' '.join(lst[i::row_num])
... 
>>> print_list_matrix(lst, 3)
v1 v4 v7 v10 v13
v2 v5 v8 v11 v14
v3 v6 v9 v12
>>> print_list_matrix(lst, 4)
v1 v5 v9 v13
v2 v6 v10 v14
v3 v7 v11
v4 v8 v12
L = ['v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9', 'v10', 'v11', 'v12', 'v13', 'v14']
numRows = 3
matrix = [L[numRows*i: numRows*(i+1)] for i in range((len(L)/numRows)+1)]
for row in itertools.izip_longest(*matrix):
    print ' '.join(str(i) for i in row if i is not None)


In [143]: L = ['v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9', 'v10', 'v11', 'v12', 'v13', 'v14']

In [144]: numRows = 3

In [145]: matrix = [L[numRows*i: numRows*(i+1)] for i in range((len(L)/numRows)+1)]

In [146]: for row in itertools.izip_longest(*matrix):
   .....:     print ' '.join(str(i) for i in row if i is not None)
   .....:     
v1 v4 v7 v10 v13
v2 v5 v8 v11 v14
v3 v6 v9 v12

相关问题 更多 >