2013-03-25 2 views
-1

파이썬 3에서는 하나 또는 두 개의 문자열 요소를 포함하는 items 목록을 취하여 요소가 포함 된 문자열을 반환하는 format_list(items) 함수를 작성하려고합니다. 전달 된 목록에는 항상 하나 또는 두 개의 요소가 포함됩니다 (즉, 비어 있지 않으며 두 개 이상의 요소가 포함되지 않음).python - 조건부 목록 서식 지정

조건은 :

  1. 리스트가 단일 소자를 포함하는 경우는, 그 요소는 변경 함수에 의해 리턴된다.
  2. 목록에 두 개의 요소가 포함 된 경우 첫 번째 요소가 너비가 10 인 필드에 왼쪽 정렬 된 다음 세로 막대 ('|')와 그 다음에 두 번째 요소가있는 필드에 오른쪽 정렬 된 단일 문자열로 반환됩니다. 너비가 10 자 이하인 문자열이라고 가정 할 수 있습니다.

    abc 
    

    을 그리고 print(format_list(['Dave', '14'])) 생산과 같습니다 :

그래서 print(format_list(['abc'])) 생산 것

Dave | 14 

를 어디서라도 시작하는 ....

+1

당신이 [파이썬 문서] 시작할 수 있습니다 (http://docs.python.org/ ->......word

"%-10s" % 'word' (점은 공간) 3.3/library/stdtypes.html) – Serdalis

+1

보다 구체적으로 ['format'] (http://docs.python.org/3.3/library/stdtypes.html#str.format) – georg

+0

감사합니다. 전에 읽었지만 어쩌면 새로 고침이 필요합니다 ... – jevans

답변

0
def format_list(l): 
    if len(l)==1: return l[0] 
    else: 
     return '{:<10}|{:>10}'.format(l[0],l[1]) 

for l in [['abc'],['Dave', '14']]:   
    print(format_list(l)) 
아무 생각이 없다

인쇄 :

abc 
Dave  |  14 

.format 방법을 봐와 .format mini language.

+0

두 번째 목록 항목을 오른쪽 정렬하지 않습니다. –

+0

이제 센터링 중입니다 ... –

+0

@EthanFurman : U와 마찬가지로, 나는 그것을보고 싶지 않았습니다. 고정 – dawg

1

이 숙제 같은 소리 때문에 몇 가지 단서 당신은 가야 :

  • % formatting (예 "Hello %s!" % some_var ->"Hello World!"some_var == "World" 경우)

  • len(some_list) - 목록의 항목> 수를

아, 그리고 내가보고 싶어하지 않기 때문에 :

"%10s" % 'word' ->word......

-1
def format_list(my_list) 
    try: 
     return my_list[0].ljust(10) + '|' + my_list[1].rjust(10) 
    except IndexError: return my_list 
+0

첫 번째 조건은 실패합니다. 목록 자체가 아닌 단일 요소를 반환해야합니다. –