2010-02-02 23 views
64

¿O existe una forma mejor de generar rápidamente los contenidos de una matriz (multidimensional o no). Gracias.¿Cuál es el equivalente de php's print_r() en python?

+4

debe ser explicado en la pregunta, pero: http://php.net/print_r –

+1

Marcos: Es una función de PHP que muestra en pantalla el contenido de cualquier variable, incluidas matrices u objetos. –

+0

print_r es una función en PHP que puede generar una matriz de cualquier dimensión en un formato que muestra las claves y valores. –

Respuesta

40

La instrucción python print hace un buen trabajo formateando matrices multidimensionales sin requerir el print_r disponible en php.

Como la definición de impresión indica que cada objeto se convierte en una cadena y como matrices simples imprimen un '[' seguido de una lista de valores de objeto separados por comas seguido de ']', esto funcionará para cualquier profundidad y forma de matrices.

Por ejemplo

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

Si necesita formato más avanzado que este, AJ s respuesta que sugiere pprint es probablemente el camino a seguir.

+0

@ cb160 ¡buena respuesta! –

4

print y pprint son excelentes para tipos de datos incorporados o clases que definen una representación de objeto sana. Si desea un volcado completo de objetos arbitrarios, tendrá que hacer el suyo propio. Eso no es tan difícil: simplemente cree una función recursiva con el caso base siendo cualquier tipo de datos integrado no contenedor, y el caso recursivo aplicando la función a cada elemento de un contenedor o cada atributo del objeto, que se puede obtener usando dir() o el módulo inspect.

3
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) 
0

si desea dar formato a variable como una cadena que puede hacer:

s = repr(variable) 

que funciona independientemente del tipo, y no requiere de ninguna importación.

Si desea incluir el contenido de un objeto en una sola cadena, junto con su tipo:

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

Para las vistas de las pruebas sencillas que utilizo HttpResponse.Prueba de solicitud de la forma, variable, una cadena de identificación, no se oponen

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

def add_comment(request, id): 
return HttpResponse(id) 
Cuestiones relacionadas