2016-06-22 2 views
0

이의 내가 같은 길이의 문자열의 임의의 수, 예를 들어 있다고 가정 해 봅시다 :파이썬 자동 서식 문자열

'01' 
'02' 
'03' 

을 내가 "한 줄 그리드 '로 포맷해야합니다 (공백으로 분리) 고정 길이.

>>'{some expression, 15, left}'.format(['01','02','03']) 
'01 02 03  ' 

>>'{some expression, 15, right}'.format(['01','02','03']) 
'  01 02 03' 

그냥 format 또는 다른 우아한 방법으로 다음과 같이 그것을 할 수 있는가 : 그래서,이 같은 일을하고 싶습니다?

나는 이것은 붙박이 기능 format를 사용하여 문제에 대한 적절한 솔루션입니다 파이썬 3

+0

방법 파일에서 임의의 문자열을 읽거나 이미 참조/변수가? –

+0

@MosesKoledoye 변수에서 읽어야합니다. – Eenoku

답변

2

를 사용하고 싶습니다. 여기

list = ['01','02','03'] 
list1=' '.join(list) 
list_right='{:>15}'.format(list1) #right 
list_left='{:<15}'.format(list1) #left 
print (list_right) 

<>는 오른쪽 정렬 가능한 공간 내에서 (이것은이다로 현장을 강제로, 필드 동안 (이것은 대부분의 개체에 대한 기본값) 사용 가능한 공간 내에서 왼쪽으로 정렬하는 강제 숫자의 기본값).

+0

고마워요! 그냥 마지막으로'print' (파이썬 3을 지정했는데'print'는 중괄호가 필요합니다.), 파이썬 형식으로 주석을 달아서 (코드를 복사하고 실행하는 것이 가능하도록), 공백 대신에 공백으로 값을 구분할 수 있습니까? 돌진? 코드는 이해하지만이 변경 사항은 초급 사용자에게 더 유용 할 것입니다. 이는 내 질문에 완전히 들어 맞을 것이기 때문입니다. – Eenoku

+0

수정 됨, 감사합니다! –

1

이 솔루션은 람다 함수를 고용하고 더 유연 -

list123 = ['01','02','03'] 
x=15          #limiting factor for str length 
s123 = ' '.join(list123)     #list elements become a str seperated by a space 
s_space= lambda x:(x-len(s123))*' '  #store x-len(s123) spaces 
s_left=s_space(x) +s123 
s_right=s123 + s_space(x) 
print(s_left) 

출력 : ' 01 02 03'