[英]Python: printing in python?
我想以特定格式打印列表的内容:
这是我想要的样子:
[
"Zara",
3.2
],
[
"Maxwell",
3.3
],
[
"Norman",
3.1
]
我很困惑如何实现此输出。 现在,我在列表中将各个元素作为字符串,其格式为(“ \\”“ +名称+”“ \\” +“,\\ n” +等级)。 但是,我不知道如何实现适当的缩进和包围以打印出列表。 我是否应该每次都手动打印[和],或者是否有一种方法可以将所有元素编译到一个列表中,而调用打印列表将导致上面的输出? 我可以手动设置方括号的格式,但是最后一个方括号后面会带有逗号,这是我不希望的。 任何帮助将不胜感激!
您可以使用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
]
只是为了澄清一下,您有一个包含列表元素的列表吗? 而且内部元素始终是您要在引号后加上数字的字符串吗? 您可以定义一个子函数
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参数定义缩进数量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.