例如:
first = [['1 1 1', '1 1 1', '1 1 1']
t = [' '.join([str(int(num)) for num in row]) for row in first]
print('\n'.join(t))
输出:
1 1 1
1 1 1
1 1 1
到目前为止还不错。。但是
我有这个:
data = [['2 2 2', '2 2 2', '2 2 2'],
['3 3 3', '3 3 3', '3 3 3'],
['4 4 4', '4 4 4', '4 4 4'],
['5 5 5', '5 5 5', '5 5 5']]
我想把它打印成
2 2 2 3 3 3 4 4 4 5 5 5
2 2 2 3 3 3 4 4 4 5 5 5
2 2 2 3 3 3 4 4 4 5 5 5
但是更多的维度我不知道怎么做,谢谢你的时间
解决方案:
data = [['2 2 2', '2 2 2', '2 2 2'],
['3 3 3', '3 3 3', '3 3 3'],
['4 4 4', '4 4 4', '4 4 4'],
['5 5 5', '5 5 5', '5 5 5']]
print('\n'.join(" ".join([num for num in row]) for row in zip(*data)))
输出:
2 2 2 3 3 3 4 4 4 5 5 5
2 2 2 3 3 3 4 4 4 5 5 5
2 2 2 3 3 3 4 4 4 5 5 5
感谢@Thierrylahuille的zip提及
下面是一个我认为很容易理解的可能解决方案:
输出:
不需要任何(显式)循环,
zip
、map
和join
就足够了:输出:
解释:
zip(*data)
转换数据,map
+' '.join
生成行,'\n'.join
将行组合成准备print
的最终文本算法:
……等等
代码:
输出:
相关问题 更多 >
编程相关推荐