Tương đương với print_r () của php trong python là gì?


81

Hoặc có cách nào tốt hơn để xuất nhanh nội dung của một mảng (đa chiều hay không). Cảm ơn.


4
Nên được giải thích trong câu hỏi, nhưng: php.net/print_r
AJ.

1
Đánh dấu: đó là một hàm PHP hiển thị trên màn hình nội dung của bất kỳ biến nào, bao gồm cả mảng hoặc đối tượng.
Álvaro González

print_r là một hàm trong PHP có thể xuất ra một mảng kích thước bất kỳ ở định dạng hiển thị các khóa và giá trị.
Waleed Amjad

xem câu trả lời đánh giá cao nhất (không phải là câu trả lời được chấp nhận) trên stackoverflow.com/questions/192109/...
PT

3
không, nó không nên được giải thích trong câu hỏi. nó chỉ đơn giản là yêu cầu kiến ​​thức cơ bản về cả php và python. nếu bạn không hiểu câu hỏi - nó không phải là câu hỏi dành cho bạn.
tishma 24/02/17

Câu trả lời:


52

Câu lệnh python print thực hiện tốt công việc định dạng mảng đa thời gian mà không yêu cầu print_r có sẵn trong php.

Vì định nghĩa cho print nói rằng mỗi đối tượng được chuyển đổi thành một chuỗi và khi các mảng đơn giản in dấu '[' theo sau là danh sách các giá trị đối tượng được phân tách bằng dấu phẩy theo sau dấu ']', điều này sẽ hoạt động đối với mọi độ sâu và hình dạng của mảng .

Ví dụ

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

Nếu bạn cần định dạng nâng cao hơn thế này, câu trả lời của AJ đề xuất pprint có lẽ là cách tốt nhất.



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

printpprintrất phù hợp cho các lớp hoặc kiểu dữ liệu tích hợp sẵn để xác định một biểu diễn đối tượng lành mạnh. Nếu bạn muốn có đầy đủ các đối tượng tùy ý, bạn sẽ phải cuộn của riêng bạn. Điều đó không khó lắm: chỉ cần tạo một hàm đệ quy với trường hợp cơ sở là bất kỳ kiểu dữ liệu tích hợp sẵn không chứa vùng chứa nào và trường hợp đệ quy áp dụng hàm cho từng mục của vùng chứa hoặc từng thuộc tính của đối tượng, có thể nhận được sử dụng dir()hoặc inspectmô-đun.



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

print(my_list)

Sẽ in [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8) , (8, 9)]


0

nếu bạn muốn định dạng dưới dạng variablechuỗi, bạn có thể làm:

s = repr(variable)

nó hoạt động bất kể loại và không yêu cầu bất kỳ nhập khẩu nào.

Nếu bạn muốn bao gồm nội dung của một đối tượng trong một chuỗi cùng với kiểu của nó:

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

0

Đối với các chế độ xem thử nghiệm đơn giản, tôi sử dụng HttpResponse. Yêu cầu kiểm tra từ biểu mẫu, biến, chuỗi, id, không phải Đối tượng

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

def add_comment(request, id):
return HttpResponse(id)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.