리스트로 데이터 모으기

in #krsuccessyesterday

여러 데이터를 한 번에! 리스트로 데이터 모으기

이제까지 변수/연산자/조건/반복/함수까지는 뭐… 대충 “뼈대”를 잡은 느낌이었죠.
솔직히 말하면, 여기서부터가 진짜 재밌는 구간이에요. 왜냐면 프로그램은 보통 “하나의 값”만 쓰는 게 아니라, 여러 개를 한꺼번에 모아서 처리하거든요.

그래서 오늘은 리스트(list) 로 데이터를 모으는 법을 배워볼게요.
나름 바이브 코딩스럽게, “일단 손으로 쳐보기” 중심으로 갑니다!

Pexels


리스트가 왜 필요하냐? (한 줄 요약)

예를 들어 이런 상황이 있다고 해볼게요.

  • 학생 점수가 여러 명치 있어요: 90, 85, 78, 92...
  • 해야 할 일이 여러 개 있어요: 공부하기, 운동하기, 밥먹기...
  • 장바구니에 담긴 물건이 여러 개 있어요

이걸 매번 변수로 다 만들면 너무 번거롭죠.

  • score1, score2, score3… 이렇게 가면
  • 나중에 추가/삭제/계산할 때 지옥문이 열려요… 어?

리스트는 이럴 때 여러 값을 하나의 묶음으로 관리해주는 자료구조예요.
그냥 “값들이 줄줄이 들어있는 상자”라고 생각하면 됩니다.

geralt


1) 리스트 만들기

파이썬 기준으로 리스트는 대괄호 [] 를 써요.

scores = [90, 85, 78, 92]

그리고 이렇게도 가능해요.

names = ["철수", "영희", "민수"]

리스트 안에는 숫자도 넣고, 문자도 넣고, 심지어 섞어서 넣을 수도 있어요.

items = ["사과", 12000, "바나나", 8000]

물론 나중에 헷갈리니까… 나름 보기 좋게 유지하는 게 좋아요. (사실 나는 가끔 섞다가 망했어…)


2) 리스트 값 꺼내기 (인덱스)

리스트는 순서가 있는 데이터예요. 그래서 위치를 숫자로 찍을 수 있죠.

  • 첫 번째는 0
  • 두 번째는 1
  • 세 번째는 2
scores = [90, 85, 78, 92]

print(scores[0])  # 90
print(scores[2])  # 78

여기서 내가 한 번… 실수했던 얘기 하나.
리스트 인덱스를 1부터 시작하는 줄 알고 막 썼는데, 결과가 이상하게 나와서 “어? 내 코드가 이상한가?” 하고 한참 봤거든요.
근데 알고 보니 scores[1]이 두 번째 값이었어… 음… 사람은 자주 틀리더라. (나만 그런 거 아니죠?)

geralt


3) 리스트에 값 추가하기 (append)

리스트는 만들고 끝이 아니에요. 추가도 해야죠.

가장 흔한 건 append()예요.

scores = [90, 85, 78, 92]
scores.append(88)

print(scores)  # [90, 85, 78, 92, 88]

“리스트에 뒤에 하나 더 얹는다” 느낌!


4) 리스트 수정하기 (특정 인덱스 변경)

특정 위치 값도 바꿀 수 있어요.

scores = [90, 85, 78, 92]

scores[1] = 86
print(scores)  # [90, 86, 78, 92]

여기서도 인덱스만 정확히 알면 됩니다.
음… 또 헷갈리면? 그럼 출력 찍어보면 돼요. 난 이렇게 살아남았어요.


5) 리스트에서 값 제거하기

제거도 해볼게요. 방법이 몇 가지 있는데, 대표로 두 개만 잡겠습니다.

5-1) remove()로 값 지우기

scores = [90, 85, 78, 92]
scores.remove(85)

print(scores)  # [90, 78, 92]

85가 리스트에 없으면 에러가 나요.
그래서 “혹시 없을 수도 있나?” 싶으면 조건문이랑 같이 쓰는 게 안전해요. (솔직히 나도 종종 없어서 터짐…!)

5-2) pop()으로 위치 지우기 + 꺼내기

scores = [90, 85, 78, 92]

value = scores.pop(2)  # 2번째(인덱스 2) 값 꺼내기
print(value)  # 78
print(scores) # [90, 85, 92]

pop()은 “지워서 값도 가져가요”라서 자주 써요.

Simon


6) for문으로 리스트 돌려보기 (진짜 중요)

이제 진짜 실용 구간.
리스트는 보통 이렇게 씁니다:

  • 리스트 만들고
  • for로 쭉 돌면서 처리하고
scores = [90, 85, 78, 92]

for s in scores:
    print(s)

그리고 “모두 더하기” 같은 것도 가능하죠.

scores = [90, 85, 78, 92]

total = 0
for s in scores:
    total += s

print(total)

아! 그리고 여기서 평균도 바로 만들 수 있어요. 나름 귀엽게 가보자면…

scores = [90, 85, 78, 92]

total = sum(scores)
avg = total / len(scores)

print(avg)
  • sum(scores): 합
  • len(scores): 개수

사실 이런 내장함수는 “마법 버튼” 같아서 좋아요.
난 처음에 sum 몰랐을 때 진짜 손으로 다 짰거든요. 시간이 아까웠지…ㅎㅎ

Pexels


미니 실습: 리스트로 점수 처리하기

이제 바로 해봐요. 내가 “친구”라고 생각하고 옆에서 같이 하는 느낌으로 진행할게요.

목표

  • 사용자 입력으로 점수를 여러 개 받기 (예: 4개)
  • 리스트에 저장
  • 합계랑 평균 출력

예시로 이렇게 해보면 됩니다.

scores = []

for i in range(4):
    x = int(input(f"{i+1}번째 점수를 입력하세요: "))
    scores.append(x)

total = sum(scores)
avg = total / len(scores)

print("점수 목록:", scores)
print("합계:", total)
print("평균:", avg)

여기서 중요한 건,

  • scores = [] 로 리스트를 만든 다음
  • append()로 계속 넣고
  • 마지막에 sum()len()으로 처리한다는 흐름이에요.

어? 이렇게 하니까 뭔가 “프로그램이 제대로 된 느낌” 나지 않나요?


여기서 잠깐! 리스트는 “순서 있는 값 묶음”

정리해보면 리스트는 이런 성격이에요.

  • 값이 여러 개
  • 순서가 있다
  • 인덱스로 접근한다
  • 추가/수정/삭제가 가능하다

근데… 여기서 한 가지가 걸리죠.

“학생 정보가 여러 명인데, 각 학생이 이름/나이/점수까지 다 갖고 있으면 어떻게 하지?”

리스트만으로도 하긴 해요. 하지만 나중에 구조가 꼬이기 시작합니다.
그래서 다음 글에서는 딕셔너리로 정보 관리하기로 넘어갈 거예요.

딕셔너리는 “이름이 붙은 키(key)로 정보”를 다루는 방식이라,
학생 한 명의 정보를 훨씬 깔끔하게 저장할 수 있거든요. 오? 벌써 기대되지 않나요?


다음 편 예고

다음은 3-2. 딕셔너리로 정보 관리하기 입니다.

  • 리스트는 “줄 세우는 방식” 느낌이라면
  • 딕셔너리는 “이름표 달아두는 방식” 느낌이에요

그럼 우리 다음 편에서 “학생 정보” 같은 걸 진짜 깔끔하게 만들어봅시다!

Coin Marketplace

STEEM 0.06
TRX 0.32
JST 0.070
BTC 71886.09
ETH 2207.50
USDT 1.00
SBD 0.49