打印文本文件列中的列表

时间:2017-09-13 15:27:58

标签: python python-3.x

我做了一个小程序,用户输入一个名字和一个他们会给某人的礼物。然后,这些数据以["name","present"]格式保存,然后在文本文件中为新输入保存新行。

当我打印它时,它看起来像这样。

["bob","car"]
["charlie","mansion"]

这是可以预料的。 我想在列中打印它,所以它打印出来。

bob        car
charlie    mansion

我知道如何删除[],'以便正确显示,但不知道如何在列中打印。

我做了研究并找到了像zip这样的方法,但是他们打印出这样的文字。

bob     charlie
car     mansion

这不是我想要的订单。

2 个答案:

答案 0 :(得分:3)

您需要确定数据中最长的名称,以便使用其长度来格式化数据:

data = [
    ["bob", "car"],
    ["charlie", "mansion"]
]

n = max(len(item[0]) for item in data) + 5  # We add 5 more spaces between columns

for item in data:
    print('{:<{n}} {}'.format(*item, n=n))

答案 1 :(得分:1)

可以有更多的pythonic方式,但这是我的解决方案

In [58]: a = ["bob","car"]

In [59]: b = ["charlie","mansion"]

In [60]: cc = [a,b]

In [61]: for item in cc:
 ...:         print("{:<7} {:<7}".format(item[0],''.join(map(str,item[1:]))))

bob     car
charlie mansion