2013-06-24 31 views
22

Trong fortran, tôi có thể lặp lại một mô tả định dạng để lưu viết lại nó nhiều lần, ví dụ:Tôi có thể lặp lại một bộ mô tả định dạng chuỗi trong python không?

write(*,'(i5,i5,i5,i5,i5)')a,b,c,d,e 

có thể được viết lại như

write(*,'(5(i5))')a,b,c,d,e 

một cách tiếp cận tương tự có thể được sử dụng trong python?

Ví dụ, nói tôi muốn làm điều tương tự trong python, tôi sẽ phải viết:

print "{0:5d} {1:5d} {2:5d} {3:5d} {4:5d}".format(a,b,c,d,e) 

Có một số cách để lặp lại các mô tả định dạng, như trong fortran?

+4

Trong python bạn có thể thực hiện các hoạt động nhân trên dây, vì vậy nếu bạn đã để in 5 * "chuỗi", nó sẽ in chuỗi 5 lần. –

Trả lời

19

Bạn có thể lặp lại chuỗi định dạng riêng của mình:

print ('{:5d} '*5).format(*values) 

Định dạng chuỗi là một chuỗi bình thường, vì vậy bạn có thể multiply it by int

>>> '{:5d} '*5 
'{:5d} {:5d} {:5d} {:5d} {:5d} ' 
+1

Cảm ơn bạn. Để tham khảo trong tương lai: điều này cũng hoạt động khi sử dụng cú pháp biểu thức định dạng: 'print (("% 6.2f "* 3 +"% 7.2f "* 2)% (* values))' - lưu ý các dấu ngoặc xung quanh chuỗi định dạng khi thêm nhiều nhóm có độ dài khác nhau. – AstroFloyd

+0

Trong Python 3.6.1 'print ('{: 5d}' * 5) .format (1,2,3,4,5)' đưa ra một lỗi thuộc tính. 'print ('{: 5d}' * 5.format (1,2,3,4,5))' đưa ra một lỗi cú pháp. Tuy nhiên, 'fmt = '{: 5d}' * 5' theo sau là các bản in' print (fmt.format (1,2,3,4,5)) 'như mong muốn. –

Các vấn đề liên quan