리스트
✅ 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차원 리스트
# 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()
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')
딕셔너리
✅ 딕셔너리 주요 함수
person = {'name': '지수'}
person.setdefault('age', 25) # age가 없으므로 추가됨
person.setdefault('name', '지영') # name은 이미 있으므로 무시됨
print(person) # {'name': '지수', 'age': 25}
person = {'name': '지수', 'age': 25}
person.update({'age': 30, 'city': 'Seoul'}) # age는 수정, city는 추가
print(person) # {'name': '지수', 'age': 30, 'city': 'Seoul'}
person = {'name': '지수', 'age': 25}
age = person.pop('age')
print(age) # 25
print(person) # {'name': '지수'}
person = {'name': '지수', 'age': 25}
item = person.popitem()
print(item) # ('age', 25)
print(person) # {'name': '지수'}
keys = ['name', 'age', 'city']
defaults = dict.fromkeys(keys, '미정')
print(defaults)
# {'name': '미정', 'age': '미정', 'city': '미정'}
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] # 문자열 → 정수 리스트