我制作了一个小程序,用户输入一个名字和他们将要送给某人的礼物。然后,这些数据以[“name”,“present”]
的格式保存,然后在文本文件中为新输入添加一行。
当我打印它时,它看起来是这样的。
["bob","car"]
["charlie","mansion"]
这是意料之中的。我想在列中打印它,所以它像这样打印。
bob car
charlie mansion
我知道如何删除[],”
,因此它可以正确显示,但不知道如何在列中打印。
我做了研究,找到了像zip
这样的方法,但它们是这样打印文本的。
bob charlie
car mansion
这不是我想要的顺序。
您需要确定数据中最长的名称,才能使用其长度格式化数据:
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