Python:用Python打印?

2024-10-01 09:23:03 发布

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

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

我希望它看起来像这样:

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

我不知道如何实现这个输出。现在,我将列表中的各个元素作为字符串,其格式为(“\”“+name+”“\”“+”,\n“+grade)。但是,我不知道如何实现适当的缩进和括号打印出列表。我应该每次手动打印一个[and],还是有办法将所有元素编译成一个列表,调用print list会得到上面的输出?我可以手动设置括号的格式,但这会在最后一个括号后面留下逗号,这是我不想要的。任何帮助都将不胜感激!你知道吗


Tags: and字符串name元素内容列表格式手动
3条回答

澄清一下,你有一个包含列表元素的列表吗?而内部元素总是一个字符串,你想在引号后面跟一个数字? 你可以定义一个子函数

    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来清理。你知道吗

那个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参数。你知道吗

你可以用^{}。假设您有这样一个列表:

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

相关问题 更多 >