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

2024-04-19 13:23:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当我打印的时候,它看起来是这样的。你知道吗

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

这是意料之中的。 我想把它列印成这样。你知道吗

bob        car
charlie    mansion

我知道如何删除[],',这样它就可以正常显示,但不知道如何在列中打印。你知道吗

我做过研究,发现了zip这样的方法,但它们打印的文本是这样的。你知道吗

bob     charlie
car     mansion

这不是我想要的顺序。你知道吗


Tags: 数据方法用户name程序格式zip名字
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

相关问题 更多 >