2010-02-02 146 views
64

還是有更好的方法來快速輸出數組的內容(多維或不是)。謝謝。python中print_r()的等價物是什麼?

+4

應在問題來解釋,但是:http://php.net/print_r – 2010-02-02 21:28:34

+1

馬克:這是一個PHP函數在屏幕上顯示任何變量的內容,包括數組或對象。 – 2010-02-02 21:28:55

+0

print_r是PHP中的一項功能,它可以以顯示鍵和值的格式輸出任何維數組。 – 2010-02-02 21:29:25

回答

40

python print語句在格式化多維數組時不需要使用print_r

由於print的定義指出每個對象都被轉換爲一個字符串,並且簡單的數組打印出一個'[',後面跟着逗號分隔的對象值列表,後面跟着一個']',這將適用於任何深度和陣列的形狀。

例如

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

如果你需要比這個更先進的格式,AJ的回答暗示pprint可能是要走的路。

+0

@ cb160不錯的答案! – 2010-02-02 21:53:09

4

printpprint非常適合定義合理對象表示的內置數據類型或類。如果你想要一個完整的任意對象轉儲,你將不得不推出自己的。這並不困難:只需創建一個遞歸函數,其基本情況是任何非容器內置數據類型,並且遞歸情況將函數應用於容器的每個項目或對象的每個屬性,可以獲得使用dir()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

如果要格式化variable,你可以做一個字符串:

s = repr(variable) 

它的作品無論是類型,並且不requiere任何進口。

如果你想用它的類型一起包括一個字符串對象的內容:

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

對於我使用的HttpResponse簡單的測試意見。從形式,變量,字符串ID測試的要求,而不是Object

​​
def add_comment(request, id): 
return HttpResponse(id) 
相關問題