web-dev-qa-db-ja.com

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

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

75
ensnare

python print ステートメントは、 print_r を必要とせずに多次元配列をフォーマットするのに適しています。 phpで。

印刷の定義では、各オブジェクトは文字列に変換され、単純な配列は '['に続いてオブジェクト値のコンマ区切りリストに続いて ']'を印刷すると規定されているため、これは配列の任意の深さと形状に対して機能します。

例えば

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

これよりも高度なフォーマットが必要な場合、 [〜#〜] aj [〜#〜] s answer pprint はおそらく行く方法。

51
Robert Christie

repr bult-in関数を探していました。
http://docs.python.org/2/library/functions.html#func-repr

print repr(variable)

Python 3、printはステートメントではなくなったため、次のようになります。

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

試してみてください:

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

pipを使用して簡単にインストールできます

pip install var_dump

免責事項:私はそれを書いた:)

5
sha256

printpprintは、健全なオブジェクト表現を定義する組み込みデータ型またはクラスに最適です。任意のオブジェクトの完全なダンプが必要な場合は、独自のオブジェクトをロールする必要があります。それはそれほど難しくありません:単純な再帰関数を作成し、ベースケースを非コンテナ組み込みデータ型にし、再帰ケースを取得してコンテナの各アイテムまたはオブジェクトの各属性に関数を適用しますdir()またはinspectモジュールを使用します。

5
Max Shawabkeh

python https://github.com/marcbelmont/python-print_r/wiki にはprint_rがありますが、標準モジュールを使用した方が良いです

2
jellyfish

variableを文字列としてフォーマットする場合は、次のようにします。

s = repr(variable)

タイプに関係なく機能し、インポートを要求しません。

オブジェクトのコンテンツをそのタイプとともに単一の文字列に含める場合:

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)

[(0、1)、(1、2)、(2、3)、(3、4)、(4、5)、(5、6)、(6、7)、(7、8)を印刷します、(8、9)]

単純なテストビューには、HttpResponseを使用します。オブジェクトではなく、フォーム、変数、文字列、IDからのリクエストをテストする

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

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