txt 파일 안에 특정한 구분자로 구분된 세 그룹의 수치의 평균, 최대값을 구하기

조회수 658회

메모장 파일 txt 파일에

======
1.234234

4

5

3


=======


=======

2323

343

=======

이런 식으로 ======에 따라 세 그룹으로 나뉘어서 그 값들의 평균이나 최댓값을 구해야 하는데 이 세그룹을 구분지을 수 있는 코드를 잘 모르겠습니다. 두번째 그룹은 안에 아무것도 없다는 뜻입니다.

1 답변

    • 파일을 한 줄씩 읽어서,
    • 읽은 내용이 ======== 이면, 새로운 그룹을 시작
    • 읽은 내용이 숫자값이면, 그룹에 숫자를 등록
    • 두가지에 해당되지 않는다면 무시

    이렇게 하면, 각 그룹에 숫자를 담을 수 있습니다. 이후에는 각 그룹에 등록된 숫자들의 평균과 최대값을 구하면 됩니다.

    위에 글로 쓴 내용을 파이썬 코드로 만들어보면 대략 다음과 같습니다.

    num_groups = []
    with open('dat.txt', 'rt') as f:
        group = []
        first_sep = True
        for line in f.readlines():      
            line = line.strip()          
            if '===' in line:
                if not first_sep: 
                    num_groups.append(group[:])
                group = []
                first_sep = False
                continue
            try:
                num = float(line)
                group.append(num)
            except:
                continue
    

    평균과 최대값은 쉬우니까 스스로 해보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)