提问者:小点点

从文本文件打印列中的列表


我制作了一个小程序,用户输入一个名字和他们将要送给某人的礼物。然后,这些数据以[“name”,“present”]的格式保存,然后在文本文件中为新输入添加一行。

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

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

这是意料之中的。我想在列中打印它,所以它像这样打印。

bob        car
charlie    mansion

我知道如何删除[],”,因此它可以正确显示,但不知道如何在列中打印。

我做了研究,找到了像zip这样的方法,但它们是这样打印文本的。

bob     charlie
car     mansion

这不是我想要的顺序。


共2个答案

匿名用户

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

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))

匿名用户

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

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