파이썬에서 꼭 알아야 할 리스트·딕셔너리 함수 정리‼️

김지수·2025년 5월 28일
post-thumbnail

리스트

1차원 리스트

  • 한 줄로 된 목록
# 1차원 리스트
a = [10, 20, 30, 40, 50]

# 1차원 리스트 인덱싱
print (a[0]) #10
print (a[4]) #50

2차원 리스트

  • 리스트 안에 리스트가 포함된 형태
  • 행과 열로 표 형태의 데이터 표현 가능
# 2차원 리스트
b = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
    ]
    

# 2차원 리스트의 len함수 -> 행의 길이로 출력
len(b) #3

# 2차원 리스트 인덱싱
b[2][0] # [7]
b[0][2] # [3]
b[1] #[4, 5, 6]

3차원 리스트

  • 2차원 리스트가 리스트 안에 들어간 형태
# 3차원 리스트
c = [
    [  # 첫 번째 블록
        [1, 2],
        [3, 4]
    ],
    [  # 두 번째 블록
        [5, 6],
        [7, 8]
    ]
]

# 3차원 리스트 인덱싱
print(c[0][0][1])  # 2 
print(c[1][1][0])  # 7
print(c[1][1][:])  # 7,8

# 3차원 리스트의 길이
len(c) #2 (depth)

리스트 주요 함수

  • min(): 리스트 함수에서 가장 작은 요소 반환
  • max(): 리스트에서 가장 큰 요소 반환
  • sum(): 리스트 안의 요소들을 모두 더해 반환
  • enumerate(): 리스트를 반복할 때, 인덱스 번호와 값을 함께 가져옴
  • zip(): 여러 리스트를 같은 인덱스끼리 묶어 반환
# min() 
numbers = [5, 8, 1, 9, 3]
print(min(numbers))  # 1

# max()
numbers = [5, 8, 1, 9, 3]
print(max(numbers))  # 9

#sum()
scores = [70, 80, 90]
print(sum(scores))  # 240

#enumerate()
fruits = ['apple', 'banana', 'cherry']
for i in enumerate(fruits):
	print(i)
#0 apple
1 banana
2 cherry

#zip()
fruits = ['apple', 'banana', 'cherry']
colors = ['red', 'yellow', 'pink'] 

for i in zip(fruits, colors):
    print(i)
#('apple', 'red')
 ('banana,' 'yellow')
 ('cherry', 'pink')
 

딕셔너리

딕셔너리 주요 함수

  1. setdefault()
    키가 존재하지 않으면 새로 추가하고, 있으면 기존 값을 반환
person = {'name': '지수'}
person.setdefault('age', 25)     # age가 없으므로 추가됨
person.setdefault('name', '지영')  # name은 이미 있으므로 무시됨

print(person)  # {'name': '지수', 'age': 25}
  1. update()
    딕셔너리에 키-값 쌍을 추가하거나 수정
person = {'name': '지수', 'age': 25}
person.update({'age': 30, 'city': 'Seoul'})  # age는 수정, city는 추가

print(person)  # {'name': '지수', 'age': 30, 'city': 'Seoul'}
  1. pop()
    특정 키의 값을 꺼내고 삭제
person = {'name': '지수', 'age': 25}
age = person.pop('age')

print(age)      # 25
print(person)   # {'name': '지수'}
  1. popitem()
    딕셔너리에서 마지막 항목을 제거하고 (key, value) 튜플로 반환
person = {'name': '지수', 'age': 25}
item = person.popitem()

print(item)     # ('age', 25) 
print(person)   # {'name': '지수'}
  1. fromkeys()
    리스트나 튜플을 넣으면 자동으로 딕셔너리를 만들어주는 함수
keys = ['name', 'age', 'city']
defaults = dict.fromkeys(keys, '미정')

print(defaults)  
# {'name': '미정', 'age': '미정', 'city': '미정'}
  1. in/not in
    딕셔너리에 특정 키가 있는지 확인
    value가 있는지 확인하고 싶으면 values()를 붙이기
person = {'name': '지수', 'age': 25}

print('name' in person)     # True
print('city' not in person) # True

#value 확인할 때
print('25' in person.values())  # True

컴프리헨션

컴프리헨션이란?

파이썬의 대표적인 문법 중 하나
대괄호 [ ] 안에 if문, for문, in의 조건과 반복문을 활용

# for 반복문
squares = []
for x in range(1, 6):
    squares.append(x**2)

print(squares)  # [1, 4, 9, 16, 25]

#리스트 컴프리헨션
squares = [x**2 for x in range(1, 6)]
print(squares)  # [1, 4, 9, 16, 25]
#for 조건문
evens = []
for x in range(10):
    if x % 2 == 0:
        evens.append(x)

print(evens)  # [0, 2, 4, 6, 8]

#반복문 조건문 컨프리헨션
evens = [x for x in range(10) if x % 2 == 0]
print(evens)  # [0, 2, 4, 6, 8]

#이중 if문 컨프리헨션
nums = [x for x in range(1, 21) if x % 2 == 0 if x % 3 == 0]
print(nums)

예제문제 풀이

# 국, 영, 수, 사, 과 점수 입력 후 최저 점수, 최고 점수, 평균 점수 출력

score = input("성적을 입력하세요. (국어 영어 수학 사회 과학):")
score_list = list(map(int, score.split()))

average = sum(score_list) / len(score_list)

print("최저 점수:", min(score_list), 
      "최고 점수:", max(score_list),
      "평균 점수:", average)

✅ score.split()

# score은 문자열
# split()을 하면 공백을 기준으로 문자열을 나눠 리스트로 만듬 
score = "80 90 100 70"
score.split()  # 👉 ['80', '90', '100', '70'] → 문자열 리스트

✅ map(int, ...)

# 리스트의 각 요소에 int() 함수를 적용해서 정수로 바꿈
map(int, ['80', '90', '100', '70'])  
# 👉 [80, 90, 100, 70] (map 객체)

✅ list(...)

score_list = [80, 90, 100, 70]  # 문자열 → 정수 리스트
profile
오늘 배운 것을 기록하며, 나만의 지식으로 만들어가는 성장 일지 💪🍀

0개의 댓글