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


81

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


4
应该在问题中进行解释,但是: php.net/print_r
AJ。

1
马克:这是一个PHP函数,可在屏幕上显示任何变量的内容,包括数组或对象。
阿尔瓦罗·冈萨雷斯

print_r是PHP中的一个函数,可以以显示键和值的格式输出任何维数组。
Waleed Amjad


3
不,不应对此进行解释。它只需要php和python的基础知识。如果您不了解问题-这不是您的问题。
tishma

Answers:


52

python print语句可以很好地格式化多维数组,而无需php中可用的print_r

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

例如

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

如果您需要比这更高级的格式,AJ的答案表明pprint可能是可行的方法。



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


5

print并且pprint对于定义理智的对象表示形式的内置数据类型或类非常有用。如果要完全转储任意对象,则必须自己滚动。这并不难:只需创建一个递归函数即可,基本情况是任何非容器内置数据类型,然后递归情况将函数应用于容器的每个项目或对象的每个属性,就可以得到该递归函数。使用dir()inspect模块。



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


0

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

s = repr(variable)

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

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

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

0

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

from django.http.response import HttpResponse
HttpResponse(variable)

def add_comment(request, id):
return HttpResponse(id)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.