- 리스트, 딕셔너리는 for 반복문을 주로 사용
✅ 예제1. 3 ** 2 는 9 입니다. 를 출력하기 위해서는?
1️⃣ 3이랑 2 값을 넣어서 출력할 경우
print('3**2 는 9 입니다.')
2️⃣ 3이랑 2를 값에서 변수로 변경할 경우 (format string 사용)
x=3
y=2
print(f"{x} ** {y}는 9 입니다")
3️⃣ 9도 변수로 바꿀 경우
x=3
y=2
result=x**y
print(f"{x} ** {y}는 {result} 입니다")
✅ 예제2. 숫자 하나를 제곱하는 연산을 실행해 보세요.
⭐️ 변수 num, result만 사용
num = 4
result = num**2
print(result)
✅ 예제3. 1부터 5까지 숫자의 제곱값을 구하여 출력해 보세요. (for문 사용)
⭐️ squares = [], for in range 사용
squares = []
for i in range(1,6):
squares.append(i**2)
print(squares)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
❓ 리스트 컴프리헨션: 파이썬에서 리스트를 가독성 좋게 생성하는 방법 중 하나
📍 리스트 컴프리헨션 기본 구조
[표현식 for 항목 in iterable if 조건문] ⭐️ 조건 없으면 if문 안 써도 됨
squares = [square**2 for i in range(1,6)]
print(squares)
[리스트 컴프리헨션 구조 분석]
square2 ➖ 표현식
squares = [] ➖ 제곱값을 넣기 위한 리스트 설정
for i in range(1,6) ➖ 1부터 5까지 꺼내서 i에 반복 입력
range(1,6) ➖ 반복가능객체
i ➖ (꺼내온 값을 가져올) 항목
✅ 예제4. 제곱 연산을 수행하는 부분을 함수로 분리해 보세요.
⭐️ def square(n): 함수 사용
squares = []
def square(n):
return n**2
for i in range(1,6):
squares.append(square(i))
print(squares)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
squares = [square(i) for i in range(1,6)]
print(squares)
✅ 예제5. 1부터 5까지 숫자 중 짝수만 골라 제곱하여 출력해 보세요.
⭐️ i % 2 == 0 사용
squares = []
for i in range(1,6):
if i % 2 == 0:
squares.append(i**2)
print(squares)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
squares = [square (i) for i in range(1,6) if i%2==0]
print(squares)
✅ 예제1. 화씨 212를 섭씨로 변환하여 출력해보세요.
⭐️ 변수 fahrenheit(화씨), celsius(섭씨) 사용
⭐️ 공식: 섭씨 = (화씨 - 32) * 5/9
fahrenheit = 212
celsius = (fahrenheit -32)*5/9
print(celsius)
✅ 예제2. 리스트 전체를 for문으로 순회하며 섭씨로 변환해보세요.
⭐️ 변수 ahrenheit_temps, celsius_temps
fahrenheit_temps = [32, 68, 100, 212, 50]
celsius_temps = []
for fahrenheit in fahrenheit_temps:
celsius_temps.append((fahrenheit -32)*5/9)
print(celsius_temps)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
fahrenheit_temps = [32, 68, 100, 212, 50]
celsius_temps = [(fahrenheit -32)*5/9 for fahrenheit in fahrenheit_temps]
print(celsius_temps)
🔻🔻🔻 사용자 지정 함수 추가 🔻🔻🔻
fahrenheit_temps = [32, 68, 100, 212, 50]
celsius_temps = []
def fahrenheit_to_celsius(f):
return (f -32)*5/9
for f in fahrenheit_temps:
celsius_temps.append(fahrenheit_to_celsius(f))
print(celsius_temps)
[주어진 리스트]
quality_data = [ {'product_id': 'P001', 'defect_rate': 2.3, 'grade': 'A'}, {'product_id': 'P002', 'defect_rate': 6.1, 'grade': 'C'}, {'product_id': 'P003', 'defect_rate': 1.8, 'grade': 'A'}, {'product_id': 'P004', 'defect_rate': 4.5, 'grade': 'B'}, {'product_id': 'P005', 'defect_rate': 7.2, 'grade': 'C'}, ]
✅ 예제1. 딕셔너리 하나에서 제품 ID : P001인 키 값 출력
⭐️ 변수 product_id
sample = {'product_id': 'P001', 'defect_rate': 2.3, 'grade': 'A'}
print(sample['product_id'])
print(f"제품 ID :{sample['product_id']}")
✅ 예제2. 리스트 안의 모든 제품 ID 출력 (for 문 사용)
⭐️ 변수 product_ids
product_ids = []
for data in quality_data:
product_ids.append(data['product_id'])
print(product_ids)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
product_ids = [data['product_id'] for data in quality_data]
print(product_ids)
✅ 예제3. 불량률 5% 이상인 제품 ID : 불량률(defect_rate)이 5.0 이상인 제품 출력
⭐️ 변수 grade_a_defects
high_defect_ids = []
for data in quality_data:
if data['defect_rate'] >= 5:
high_defect_ids.append(data['product_id'])
print(high_defect_ids)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
high_defect_ids = [data['product_id'] for data in quality_data if data['defect_rate'] >= 5.0]
print(high_defect_ids)
✅ 예제4. C등급이면서 불량률 5% 이상인 제품 : grade가 'C'이고, defect_rate가 5.0 이상인 제품 ID 출력
⭐️ 변수 c_high_defect_ids
c_high_defect_ids = []
for data in quality_data:
if data['grade'] == 'C' and data['defect_rate'] >= 5.0:
c_high_defect_ids.append(data['product_id'])
print(c_high_defect_ids)
🔻🔻🔻 리스트 컴프리헨션 구조로 변경 🔻🔻🔻
c_high_defect_ids = [data['product_id'] for data in quality_data if data['grade'] == 'C' and data['defect_rate'] >= 5.0]
print(c_high_defect_ids)