如何在python中打印列表? (应格式化)

时间:2018-02-12 00:58:41

标签: python

我只想打印一些格式化输出,但我不明白,所以我需要帮助。 这是我的代码。

在列表中,

[dev, 1, 1999-09-08, y]
[res, 2, 2000-01-02, n]

...

以上列表由用户输入。

    inputlist = []
    devname = input("Device Name: ")
    devcount = input("Device Count: ")
    devdate = input("Production Date(ex: 1990-01-01): ")
    devres = input("Stock? (y/n): ")
    inputlist.append(devname+","+devcount+","+devdate+","+devres)

现在,我想打印上面的数据。

dev    1     1999-09-08    y
res    2     2000-01-02    n

我已经尝试过迭代和打印,但我不再有任何想法了。

    for i in range(len(inputlist)):
        rd = inputlist[i].split(',')
        for j in range(len(rd)):
            print(rd[j], sep='\t', end='')

有人帮我吗?我一开始就在学习python,所以我对迭代的理解不太好...非常感谢你提前做好了!

2 个答案:

答案 0 :(得分:0)

解决方案

在表格表格中打印数据的最佳选项是Printing Lists as Tabular Data

替代

您的清单是,

list_a = [dev, 1, 1999-09-08, y]
list_b = [res, 2, 2000-01-02, n]`

我建议的方法是将它们变成一个列表,如下所示:

>>> listm = [a, b]
>>> listm
[[dev, 1, 1999-09-08, y], [res, 2, 2000-01-02, n]]

然后,您可以在选择要打印的元素列时浏览列表。

for li in listm:
   print("{}\t{}\t{}\t{}".format(li[0], li[1], li[2], li[3]))

or

for li in listm:
    print(*li, sep='\t')

结果:

dev    1     1999-09-08    y
res    2     2000-01-02    n

答案 1 :(得分:0)

你刚刚将两个参数混淆了!

请在最后一行尝试此操作:

print(rd[j], sep='', end='\t')