【问题标题】:Python: printing in python?Python:用python打印?
【发布时间】:2017-02-18 23:10:17
【问题描述】:

我想以特定格式打印出列表的内容:

这是我想要的样子:

        [
            "Zara",
            3.2
        ],
        [
            "Maxwell",
            3.3
        ],
        [
            "Norman",
            3.1
        ]

我很困惑如何实现这个输出。现在,我将列表中的各个元素作为格式为 ("\"" + name + ""\" + ",\n" +grade) 的字符串。但是,我不知道如何实现正确的缩进和括号以打印出列表。我应该每次手动打印一个 [ 和 ] 还是有办法将所有元素编译到一个列表中,其中调用打印列表会导致上面的输出?我可以手动格式化括号,但这会在最后一个括号后面留一个逗号,这是我不想要的。任何帮助将不胜感激!

【问题讨论】:

  • print('[\n "{}",\n {}\n]'.format(name, grade))
  • 如果这是一个很好的问题并且得到了回答,它应该留在这里让其他人找到答案。如果这是一个不好的问题,它应该被删除。不存在将问题内容改为“已回答”的情况。

标签: python string list


【解决方案1】:

您可以使用json.dumps()。假设您有一个这样的列表:

>>> import json 
>>> grades = [['Zara', 3.2], ['Maxwell', 3.3], ['Norman', 3.1]]
>>> print(json.dumps(grades, indent=4))
[
    [
        "Zara", 
        3.2
    ], 
    [
        "Maxwell", 
        3.3
    ], 
    [
        "Norman", 
        3.1
    ]
]

这与您所追求的非常接近,无需编码,字符串本身也没有转义引号。如果您不喜欢外括号,则可以单独打印每个列表:

>>> print(*(json.dumps(grade, indent=4) for grade in grades), sep=',\n')
[
    "Zara", 
    3.2
],
[
    "Maxwell", 
    3.3
],
[
    "Norman", 
    3.1
]

【讨论】:

  • 感谢您的帮助!第一次调用没有在我的字符串中注册换行符。该列表包含格式如下的字符串:("\"" + name + ""\" + ",\n" +grade)。您推荐的第一个调用会打印以下字符串:"\"Zara\",\n3.2n"
  • @ReefRashid:如果您将我展示的代码粘贴到 Python 解释器中,您将看到我上面展示的输出与您想要的输出相匹配。输入是否相同,即您是否使用列表列表?
【解决方案2】:

澄清一下,您有一个包含列表元素的列表吗?内部元素总是一个字符串,你想用引号打印出来,然后是一个数字? 你可以定义一个子函数

    def print_list_item(item, last_item):
        print "["
        print '    "' + item[0] + '",'
        print '    ' + str(item[1]) + ','
        if last_item:
            print "]"
        else:
            print "],"

(请注意,我使用单引号来有效地“转义”双引号字符) 然后您可以像这样打印列表:

    for i, item in enumerate(my_list):
        print_list_item(item, i == len(my_list)-1)

您也可以使用 printf 来清理它。

【讨论】:

    【解决方案3】:

    json.dumps() 方法带有参数,以便于读取结果:

        import json
    
        # some JSON:
        x =  [['Zara', 3.2], ['Maxwell', 3.3], ['Norman', 3.1]]
    
        # parse x:
        y = json.loads(x, indent=4)
    

    indent 参数定义缩进的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多