我有一个包含148个条目的列表。每个条目都是一个四位数字。我想把结果打印出来:
1 14 27 40
2 15 28 41
3 16 29 42
4 17 30 43
5 18 31 44
6 19 32 45
7 20 33 46
8 21 34 47
9 22 35 48
10 23 36 49
11 24 37 50
12 25 38 51
13 26 39 52
53
54
55... and so on
我有一些适用于前13行和4列的代码:
kort_identifier = [my_list_with_the_entries]
print_val = 0
print_num_1 = 0
print_num_2 = 13
print_num_3 = 26
print_num_4 = 39
while (print_val <= 36):
print kort_identifier[print_num_1], '%10s' % kort_identifier[print_num_2], '%10s' % kort_identifier[print_num_3], '%10s' % kort_identifier[print_num_4]
print_val += 1
print_num_1 += 1
print_num_2 += 1
print_num_3 += 1
print_num_4 += 1
我觉得这是一个糟糕的解决方案,必须有一个更好,更简单的方法。我在这里搜索过(搜索打印表格和矩阵)并尝试了这些解决方案,但似乎没有一个可以解决我需要的奇怪的表/矩阵行为。
请指出正确的方向。
答案 0 :(得分:2)
有点棘手,但你走了。我选择操纵列表,直到它具有正确的形状,而不是乱用索引。
lst = range(1, 149)
lst = [lst[i:i+13] for i in xrange(0, len(lst), 13)]
lst = zip(*[lst[i] + lst[i+4] + lst[i+8] for i in xrange(4)])
for row in lst:
for col in row:
print col,
print
答案 1 :(得分:2)
这可能有些过分,但你可以制作一个numpy数组。
import numpy as np
x = np.array(kort_identifier).reshape(2, 13, 4)
for subarray in x:
for row in subarray:
print row