我正在尝试列出以格式垂直排序的多列
ADG
B E H
C F
但我不知道如何从我目前的做法中改变它,这只是水平排序
A B C
D E F
GH
lines = (' '.join(justifyList[i:i + cols])
for i in range(0, len(justifyList), cols))
return "\n".join(lines)
列表的大小和列数可能会发生变化。有没有办法轻松更改格式?
这取决于数据的结构,但假设您有多个数组,每个数组指示一列,我发现这段代码有效:
cols = [
['A', 'B', 'C'],
['D', 'E'],
['F', 'G', 'H', 'I']
]
max_length = max(len(col) for col in cols)
for col in cols:
while len(col) < max_length:
col.append(" ")
rows = [[] for _ in range(max_length)]
for col in cols:
for i, value in enumerate(col):
rows[i].append(value)
for row in rows:
print(" ".join(row))
该解决方案不仅提供垂直转置,还确保每个生成的行与其原始列保持一致,这是通过插入空格来完成的。