将长列拆分为多列并并排打印
Split long column into several columns and print them side by side
使用此代码:
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
有没有办法将一长列拆分成较小的列并并排打印?
(注:以上示例只是为了说明输出,实际打印的内容可能会有很大差异)
对于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
这里有一种更简单的方法,无需更改脚本即可:
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)),
使用此代码:
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
有没有办法将一长列拆分成较小的列并并排打印?
(注:以上示例只是为了说明输出,实际打印的内容可能会有很大差异)
对于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
这里有一种更简单的方法,无需更改脚本即可:
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)),