Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:用Python打印?_Python_String_List - Fatal编程技术网

Python:用Python打印?

Python:用Python打印?,python,string,list,Python,String,List,我想以特定格式打印列表的内容: 以下是我希望它看起来的样子: [ "Zara", 3.2 ], [ "Maxwell", 3.3 ], [ "Norman", 3.1 ] 我不知道如何实现这个输出。现在,我将列表中的各个元素作为字符串,其格式为(“\”“+n

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

以下是我希望它看起来的样子:

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

你可以用。假设您有如下列表:

>>> 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
    ]
]
    for i, item in enumerate(my_list):
        print_list_item(item, i == len(my_list)-1)
这与您所追求的非常接近,没有编码工作,字符串本身也没有转义引号。如果您不喜欢外括号,则可以单独打印每个列表:

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

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

    def print_list_item(item, last_item):
        print "["
        print '    "' + item[0] + '",'
        print '    ' + str(item[1]) + ','
        if last_item:
            print "]"
        else:
            print "],"
(注意,我使用单引号来有效地“转义”双引号字符) 然后可以按如下方式打印列表:

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

用于定义缩进数的缩进参数。

打印('[\n“{},\n{}\n]'.format(name,grade)]的可能重复项。如果这是一个好问题并且得到了回答,则应保留在此处,以便其他人找到答案。如果这是一个糟糕的问题,它应该被删除。将问题内容更改为“已回答”是不可接受的。感谢您的帮助!第一次调用没有在我的字符串中注册换行符。该列表包含如下格式的字符串:(“\”+名称+“\”+,\n“+等级)。您建议的第一个调用打印字符串,如:“\”Zara\“,\n3.2n”@ReefRashid:如果您将我显示的代码粘贴到Python解释器中,您将看到我上面显示的输出与您所需的输出匹配。输入是否相同,即是否使用列表列表?