将长柱分成几列并将它们并排打印

时间:2015-06-18 14:10:15

标签: python python-3.x multiple-columns

使用此代码:

import string


for i, j in enumerate(string.ascii_uppercase, 1):
    print('{}: {}'.format(i, j))

我得到以下输出:

1: A
2: B
3: C
4: D
5: E
6: F
7: G
8: H
9: I
10: J
11: K
12: L
13: M
14: N
15: O
...

我正在寻找的是:

0: A              5: F             ....
1: B              6: G
2: C              7: H
3: D              8: I
4: E              9: J
5: F              10: K

有没有办法将长列拆分成较小的列并将它们并排打印?

(注意:上面的例子仅用于说明输出。打印的实际内容可能非常不同)

2 个答案:

答案 0 :(得分:1)

对于Python3,如果需要列式打印,可以尝试此功能 -

def listPrinter(lst, cols):
    l = len(lst)
    rs = int(l/cols)
    for i in range(rs):
        for j in range(cols):
            print(lst[i + rs*j] , end='\t')
        print('')

请注意,上述函数的参数lst是要打印的内容列表。

然后使用 -

调用此函数
lst = []        
for i, j in enumerate(string.ascii_uppercase, 1):
    lst.append('{}: {}'.format(i, j))

listPrinter(lst,2)

这会输出 -

1: A    14: N
2: B    15: O
3: C    16: P
4: D    17: Q
5: E    18: R
6: F    19: S
7: G    20: T
8: H    21: U
9: I    22: V
10: J   23: W
11: K   24: X
12: L   25: Y
13: M   26: Z

答案 1 :(得分:1)

在不更改脚本的情况下,这是一种更简单的方法:

import string

for i, j in enumerate(string.ascii_uppercase, 1):
    if(i%2==0):
        print('{}: {}'.format(i, j))
    else:
        print('{}: {}\t'.format(i, j)),