10장 연습 문제 3번, 4번, 5번

3번 문제는 가변인수를 받는 sum 함수를 작성하는 문제이다. 원래 sum 함수가 시퀀스를 받는데, 이 문제에서는 sum 함수가 인수를 직접 받도록 했다.

딱히 고민할 필요 없이 아래와 같이 코딩 하면 간단하다.
def sum2(*arglist) :
    if arglist == () :
        print 0
    else :
        print sum(arglist)

4번 문제는 일반 이미지 파일과 썸네일 파일이 섞여있는 리스트에서 썸네일 파일이나 일반 이미지 파일만 골라 내라는 문제이다. 골라내는 문제인 만큼 filter 함수를 쓰면 된다.
썸네일파일 : filter(lambda f: f.find('_thumb.') != -1, flist)
일반 이미지 파일 : filter(lambda f: f.find('_thumb.') == -1, flist)

5번 문제는 주어진 문자열에서 첫글자만 따서 하나의 단어를 만드는 문제이다. 여기서 split, map, join 을 이용하라고 했으므로 split 로 주어진 문자열을 공백 분리한 다음 map 으로 첫글자만 매핑하고, 그렇게 해서 나온 리스트를 join 으로 묶어버리면 된다.
''.join(map(lambda word: word[0], s.split()))
여기서 s 는 주어진 문자열이다.

댓글 없음:

댓글 쓰기