pig ham cat dog ham bird dog pig이다.
3번 문제는 일단 첫번째 단어를 기준으로 정렬하는 것이다. 정렬 후
cat dog dog pig ham bird pig ham이 되어야 한다.
3번 문제는 간단하게 라인 단위로 나눈 리스트를 그냥 정렬하면 바로 정렬이 된다.
>>> f = open('d:/s.txt') >>> print '\n'.join(sorted(f.read().split('\n')))위와 같이 코딩 하면 간단하게 정렬이 된다.
4번은 두번째 단어를 기준으로 정렬하는 문제이다. 이를 해결하는 방법이 리스트에서 이미 나왔다.
>>> f = open('d:/s.txt') >>> def mycmp(a1,a2) : return cmp(a1.split()[1], a2.split()[1]) >>> print '\n'.join(sorted(f.read().split('\n'), mycmp))와 같이 코딩하면 두번째 단어로 정렬을 할 수 있다.
이보다 더 간단히 정렬하는 방법도 있는데, 람다 함수를 이용하여 두번째 단어를 sorted 함수의 키(key)로 넘겨주는 방법이다. 이 방법은 http://cherrykyun.tistory.com/341 를 참고 바란다.
5번은 한 줄에 3개의 단어가 오도록 만드는 문제이다. 출력 후
pig ham cat dog ham bird dog pig와 같이 출력이 되어야 한다.
이를 해결하는 방법으로 여러가지가 있겠지만 나는 아래와 같은 방법을 사용했다.
>>> f = open('d:/s.txt') >>> L = ' '.join(f.read().split('\n')).split() >>> for k in range(len(L)) : print L[k] if not (k+1)%3 : print주어진 단어를 라인 별로 분리를 한다음 다시 공백으로 묶은 뒤 공백으로 분리를 한 리스트를 만들었다.
그렇게 만든 리스트의 단어를 3번마다 라인을 분리 시켰다.
댓글 없음:
댓글 쓰기