본문 바로가기

[Python] 41강 파일과 리스트·딕셔너리 함께 사용하기

@도마22026. 1. 10. 21:00
728x90


이전 강의에서는 파일 읽기와 파일 쓰기를 배웠습니다.
이번 강의에서는 파일에서 읽은 데이터를
리스트와 딕셔너리로 구조화해서 사용하는 방법을 다룹니다.

이 단계부터 프로그램이
“데이터를 저장하고 다시 활용하는 구조”를 갖게 됩니다.


파일 데이터는 왜 구조화해야 할까

파일에서 읽은 데이터는
그냥 문자열 덩어리입니다.

철수 90
영희 85
민수 100

이 상태로는

  • 점수 계산
  • 이름 검색
  • 데이터 수정

이런 작업이 어렵습니다.

그래서 파일 데이터는
리스트나 딕셔너리로 바꿔서 사용합니다.


1️⃣ 파일 내용을 리스트로 읽기

먼저 파일을
줄 단위 리스트로 읽습니다.

with open("scores.txt", "r") as f:
    lines = f.readlines()

print(lines)

실행 결과 예시

['철수 90\n', '영희 85\n', '민수 100\n']

2️⃣ 문자열 정리하기 (strip)

각 줄에는
줄바꿈(\n)이 포함되어 있으므로
strip()으로 제거합니다.

clean_lines = []

for line in lines:
    clean_lines.append(line.strip())

print(clean_lines)

3️⃣ split으로 데이터 분리하기

이제 각 줄을
이름과 점수로 나눕니다.

data = []

for line in clean_lines:
    name, score = line.split()
    data.append([name, int(score)])

print(data)

결과 예시

[['철수', 90], ['영희', 85], ['민수', 100]]

파일 → 문자열 → 리스트
이 흐름이 핵심입니다.


4️⃣ 리스트를 딕셔너리로 바꾸기

데이터를
딕셔너리로 바꾸면
검색과 관리가 쉬워집니다.

scores = {}

for name, score in data:
    scores[name] = score

print(scores)

결과 예시

{'철수': 90, '영희': 85, '민수': 100}

5️⃣ 딕셔너리 데이터 활용하기

이제 데이터를
자유롭게 사용할 수 있습니다.

print(scores["영희"])
for name in scores:
    print(name, scores[name])

이 구조는
실제 프로그램에서 매우 자주 사용됩니다.


6️⃣ 파일 → 자료구조 → 로직 패턴

이번 강의의 핵심 패턴입니다.

  1. 파일에서 읽는다
  2. 문자열을 정리한다
  3. 리스트로 나눈다
  4. 딕셔너리로 구조화한다
  5. 로직에 사용한다

이게 실전 데이터 처리의 기본 흐름입니다.


7️⃣ 실습 예제

아래 조건을 만족하는 프로그램을 만들어보세요.

  • data.txt 파일에
    이름 점수 형식으로 여러 줄 저장
  • 파일을 읽어서
  • 딕셔너리로 변환
  • 모든 학생 이름과 점수 출력
더보기
scores = {}

with open("data.txt", "r") as f:
    for line in f:
        name, score = line.strip().split()
        scores[name] = int(score)

for name in scores:
    print(name, scores[name])

이번 강의 핵심 정리

  • 파일에서 읽은 데이터는 문자열이다
  • 문자열은 리스트로 나눠서 처리한다
  • 리스트 데이터는 딕셔너리로 구조화할 수 있다
  • 파일 + 자료구조 조합은 실전의 기본이다

728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차