¿Cuál es el equivalente de print_r () de php en python?

81

¿O hay una mejor manera de generar rápidamente el contenido de una matriz (multidimensional o lo que no)? Gracias.

entrampar
fuente
4
Debería explicarse en la pregunta, pero: php.net/print_r
AJ.
1
Mark: es una función de PHP que muestra en pantalla el contenido de cualquier variable, incluidas matrices u objetos.
Álvaro González
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 los valores.
Waleed Amjad
vea la respuesta mejor calificada (no la respuesta aceptada) en stackoverflow.com/questions/192109/…
cwd
3
no, no debería explicarse en cuestión. simplemente requiere conocimientos básicos de php y python. si no entiende la pregunta, no es una pregunta para usted.
tishma

Respuestas:

52

La declaración de impresión de Python hace un buen trabajo al formatear matrices de múltiples tiempos sin requerir el print_r disponible en php.

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

Por ejemplo

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

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

Robert Christie
fuente
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)
Mukesh Chapagain
fuente
5

printy pprintson ideales para clases o tipos de datos incorporados que definen una representación de objeto sana. Si desea un volcado completo de objetos arbitrarios, tendrá que lanzar el suyo. Eso no es tan difícil: simplemente cree una función recursiva con el caso base siendo cualquier tipo de datos incorporado que no sea de contenedor, y el caso recursivo aplicando la función a cada elemento de un contenedor o cada atributo del objeto, que se puede obtener utilizando dir()o el inspectmódulo.

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

print(my_list)

Imprimirá [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8) , (8, 9)]

Stephan van der Hulst
fuente
0

si desea formatear variablecomo una cadena, puede hacer:

s = repr(variable)

funciona independientemente del tipo y no requiere 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)
AlejandroVD
fuente
0

Para vistas de prueba simples, uso HttpResponse. Solicitud de prueba desde formulario, variable, cadena, id, no objeto

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

def add_comment(request, id):
return HttpResponse(id)
Ivan Pirus
fuente