【问题标题】:Printing lists in columns from a text file从文本文件的列中打印列表
【发布时间】:2018-02-22 09:26:13
【问题描述】:

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

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

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

这是意料之中的。 我想把它打印成列,这样打印出来。

bob        car
charlie    mansion

我知道如何删除 [],' 使其正常显示,但不知道如何在列中打印。

我进行了研究并找到了像 zip 这样的方法,但他们打印的文本是这样的。

bob     charlie
car     mansion

这不是我想要的顺序。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    可以有更多的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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多