Pythonでのphpのprint_r()に相当するものは何ですか?


81

または、配列の内容(多次元かどうか)をすばやく出力するためのより良い方法はありますか?ありがとう。


4
質問で説明しますが、する必要があります。 php.net/print_r
AJ。

1
マーク:配列やオブジェクトなど、変数の内容を画面に表示するPHP関数です。
アルバロゴンサレス

print_rは、キーと値を表示する形式で任意の次元配列を出力できるPHPの関数です。
Waleed Amjad 2010


3
いいえ、問題で説明するべきではありません。それは単にphpとpythonの両方の基本的な知識を必要とします。あなたが質問を理解していないなら-それはあなたにとっての質問ではありません。
tishma 2017

回答:


52

python printステートメントは、phpで使用可能なprint_rを必要とせずに、多次元配列を適切にフォーマットします。

printの定義では、各オブジェクトは文字列に変換されると規定されており、単純な配列では「[」の後にオブジェクト値のコンマ区切りリストが続き、その後に「]」が出力されるため、これは配列の任意の深さと形状で機能します。 。

例えば

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

これよりも高度なフォーマットが必要な場合は、pprintを提案するAJの回答がおそらく道のりです。



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モジュールを使用します。




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)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.