web-dev-qa-db-fra.com

Quel est l'équivalent de print_r () de php en python?

Ou existe-t-il un meilleur moyen de sortir rapidement le contenu d'un tableau (multidimensionnel ou non). Merci.

75
ensnare

L'instruction python print fait un bon travail de formatage des tableaux multidimesion sans nécessiter le print_r disponible en php.

Étant donné que la définition de l'impression indique que chaque objet est converti en chaîne et que les tableaux simples affichent un "[" suivi d'une liste de valeurs d'objet séparée par des virgules suivie d'un "]", cela fonctionnera pour n'importe quelle profondeur et forme de tableaux. .

Par exemple

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

Si vous avez besoin d'un formatage plus avancé que cela, AJ la réponse suggérant pprint est probablement la voie à suivre.

51
Robert Christie

Vous cherchiez la fonction bult-in repr.
http://docs.python.org/2/library/functions.html#func-repr

print repr(variable)

Dans Python 3, print n'est plus une instruction, ce serait donc:

print( repr(variable) )
11
GetFree
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)
6
Mukesh Chapagain

en voici une que vous pouvez essayer:

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

vous pouvez l'installer simplement en utilisant pip

pip install var_dump

avertissement: je l'ai écrit :)

5
sha256

print et pprint sont parfaits pour les types de données ou les classes intégrées qui définissent une représentation d'objet saine. Si vous voulez un vidage complet d'objets arbitraires, vous devrez lancer le vôtre. Ce n'est pas si difficile: créez simplement une fonction récursive avec le cas de base étant tout type de données intégré non-conteneur, et le cas récursif appliquant la fonction à chaque élément d'un conteneur ou à chaque attribut de l'objet, qui peut être obtenu en utilisant dir() ou le module inspect.

5
Max Shawabkeh

il y a print_r pour python https://github.com/marcbelmont/python-print_r/wiki mais il est préférable d'utiliser des modules standard

2
jellyfish

si vous voulez formater variable comme une chaîne, vous pouvez faire:

s = repr(variable)

il fonctionne quel que soit le type et ne nécessite aucune importation.

Si vous souhaitez inclure le contenu d'un objet dans une seule chaîne avec son type:

if hasattr(variable, "__dict__"):
    s = "{}: {}".format(variable, vars(variable))
else:
    s = repr(variable)
0
AlejandroVD
my_list = list(enumerate([1,2,3,4,5,6,7,8,9],0))

print(my_list)

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

0

Pour les vues de test simples, j'utilise HttpResponse. Test de la demande à partir du formulaire, de la variable, de la chaîne, de l'ID, et non de l'objet

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

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