首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中打印3D数组?

如何在Python中打印3D数组?
EN

Stack Overflow用户
提问于 2017-03-24 18:55:38
回答 3查看 8.2K关注 0票数 -1

我用Python创建了一个简单的3D数组,我需要将它打印成行。

apple=[[["SNo."],["Computers"],["Mobile"]],
       [["1"],["iMac"],["iPhone"]],
        [["2"],["Macbook"],["iPod"]]]

我希望它像下面这样打印:

SNo. Computers Mobile
1 iMac iPhone
2 Macbook iPod
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-24 19:16:16

您可以使用以下命令来完成此操作:

for l in apple:
    print(*[e[0] for e in l])

但坦率地说,由于最后的元素都是单元素列表,我认为您应该更改创建它的代码,使其从2D数组开始。那样一切都会变得更容易。

票数 0
EN

Stack Overflow用户

发布于 2017-03-24 19:14:33

在我看来,这些数据是2D的。如果您确实想打印3D数组,那么您可以避免自己编写任何循环,而使用numpy

import numpy as np

apple_np = np.array(apple)
print apple_np

然而,你的数据不是3D的,所以它不会像你想象的那样打印出来。您需要的是一个二维数组:

apple=[["SNo.", "Computers", "Mobile"],
       ["1", "iMac", "iPhone"],
       ["2", "Macbook", "iPod"]]

apple_np = np.array(apple)
print apple_np

如果你使用的是python 2.7,你可以使用下面的命令以一种很好的格式打印出表格:

width = max([len(el) for row in apple for el in row]) + 1

for row in apple:
    for el in row:
        print ("{:"+str(width)+"s}").format(el),
    print ""
票数 1
EN

Stack Overflow用户

发布于 2017-03-24 19:36:12

它应该可以工作:

for i in apple:
    for j in i:
        helper.append(j)
    counter = 0
    assistant = []
for x in helper:
    counter += 1
    assistant.append(x[0])
    if counter == 3:
        print(" ".join(assistant))
        counter = 0
        assistant = []
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42997674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档