python中php的print_r()相当于什么?

What is the equivalent of php's print_r() in python?

或者,是否有更好的方法快速输出数组的内容(多维或非多维)。谢谢。


python print语句可以很好地格式化多度量数组,而无需使用PHP中提供的print_r。

由于print的定义规定每个对象都转换为字符串,并且简单数组打印一个"[",后跟一个以逗号分隔的对象值列表,后跟一个"]",这将适用于任何深度和形状的数组。

例如

1
2
3
>>> x = [[1,2,3],[4,5,6]]
>>> print x
[[1, 2, 3], [4, 5, 6]]

如果您需要比这更高级的格式,AJS的答案建议pprint可能是一种方式。


你在找repr灯泡的功能。http://docs.python.org/2/library/functions.html_func repr

1
print repr(variable)

在python 3中,print不再是一个语句,因此它将是:

1
print( repr(variable) )


1
2
3
4
5
6
7
8
9
10
from pprint import pprint

student = {'Student1': { 'Age':10, 'Roll':1 },
           'Student2': { 'Age':12, 'Roll':2 },
           'Student3': { 'Age':11, 'Roll':3 },
           'Student4': { 'Age':13, 'Roll':4 },
           'Student5': { 'Age':10, 'Roll':5 }
           }

pprint(student)

您可以尝试以下方法:

https://github.com/sha256/python-var-dump

您只需使用pip就可以安装它。

1
pip install var_dump

免责声明:我写的:)


printpprint非常适合用于定义健全对象表示的内置数据类型或类。如果你想要一个任意对象的完整转储,你必须自己滚动。这并不难:只需创建一个递归函数,其基本情况是任何非容器内置的数据类型,而将函数应用于容器的每个项或对象的每个属性的递归情况,可以使用dir()inspect模块获得。


有关于python的print_r https://github.com/marcelmont/python-print_r/wiki但是最好使用标准模块


1
2
3
my_list = list(enumerate([1,2,3,4,5,6,7,8,9],0))

print(my_list)

将打印[(0,1),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9)]


对于简单的测试视图,我使用httpresponse。测试来自窗体、变量、字符串、ID而非对象的请求

1
2
from django.http.response import HttpResponse
HttpResponse(variable)
1
2
def add_comment(request, id):
return HttpResponse(id)


如果要将variable格式化为字符串,可以执行以下操作:

1
s = repr(variable)

它不管类型如何都可以工作,并且不需要任何导入。

如果要在单个字符串中包含对象的内容及其类型:

1
2
3
4
if hasattr(variable,"__dict__"):
    s ="{}: {}".format(variable, vars(variable))
else:
    s = repr(variable)