2 回答

TA贡献1820条经验 获得超10个赞
你在寻找这样的东西吗?列化平方矩阵?
start = [
[1, 'one'],
[2, 'two'],
[3, 'three'],
[4, 'four'],
[5, 'five'],
[6, 'six'],
[7, 'seven'],
[8, 'eight'],
[9, 'nine'],
]
expected = [
[1, 'one', 3, 'three'],
[2, 'two', 4, 'four'],
# page break
[5, 'five', 7, 'seven'],
[6, 'six', 8, 'eight'],
# page break
[9, 'nine'],
]
a = 2
r = a*a
ans = []
for i in range(0, len(start), r):
l_tmp = start[i:i+r]
if l_tmp[::a]:
ans.append([item for sublist in l_tmp[::a] for item in sublist])
if l_tmp[1::a]:
ans.append([item for sublist in l_tmp[1::a] for item in sublist])
# You can easily add page break here
print(ans)

TA贡献1993条经验 获得超5个赞
我同意关于这是一种奇怪的“列化”方式的评论。但是,这是一个执行您所描述的功能的函数:
def columnize(A, interval=2):
ans = []
for i in range(0,len(A), interval*2):
for j in range(min(interval, len(A)-i)):
ans.append(A[i+j] + (A[i+j+interval] if i+j+interval < len(A) else []))
return ans
添加回答
举报