이런 내용의 파이썬 활용 문제가 제시되었다
나는 두 눈을 의심하며 "이런 조건으로 어떻게 코딩을 하라고?" 라며
머리를 쥐어짰다 "믿을 수 없다, 이게 초보자가 할 수준이야?"
하지만 해보기로 마음 먹었다..비록 에러로 포위섬멸을 몇번 당했지만
해당 코드도 사실상 빈칸 채우기 느낌의 문제이다,
앞서 배운 for 반복문과 if함수를 적절히 버무리면
뭔가 나오지 않을까 싶어 닥치는 대로 집어넣어봤다.
# 전체 품목 데이터 (품목명: 중량(g))
factory_products = {
"Sausage_A": 90,
"Sausage_B": 120,
"Sausage_C": 110,
"Sausage_D": 115,
"Sausage_E": 98,
"Sausage_F": 70,
"Sausage_G": 101
} #이부분을 딕셔너리라고 한다
# HACCP 검사를 받은 품목 리스트
haccp_tested = ["Sausage_A", "Sausage_B", "Sausage_D"]
# 중량 기준 (g)
weight_standard = 100 #이건 필수 조건
# HACCP 미검사 품목 리스트 반환
def untested(factory_products, haccp_tested):
untested_products = []
for product in factory_products:
if product not in haccp_tested:
untested_products.append(product)
return untested_products
# 중량 미달 품목의 갯수 반환
def underweight(factory_products):
untested_products = untested(factory_products, haccp_tested)
count = 0
for product in untested_products:
if factory_products[product] < weight_standard:
count += 1
return count
# 함수 호출 및 결과 출력
print("HACCP 미검사 품목 리스트:", untested(factory_products, haccp_tested))
print("중량 미달 품목 갯수:", underweight(factory_products))
HACCP 미검사 품목 리스트: ['Sausage_C', 'Sausage_E', 'Sausage_F', 'Sausage_G']
중량 미달 품목 갯수: 2
이렇게 코딩을 마치면 정상적으로 미달 품목 갯수 까지 확인이 가능하다
그럼 len함수와 리스트 컴프리헨션 까지 써보면 어떻게 나올까?
데이터가 줄어들까? 아니면 셀 한줄이 겁나게 길어질까? 라며
어줍짢게 생각을 해보고...
syn 에러가 계속 뜨는것도 무시하고 닥치는대로 변환해보았다
# 전체 품목 데이터 (품목명: 중량(g))
factory_products = {
"Sausage_A": 90,
"Sausage_B": 120,
"Sausage_C": 110,
"Sausage_D": 115,
"Sausage_E": 98,
"Sausage_F": 70,
"Sausage_G": 101
}
# HACCP 검사를 받은 품목 리스트
haccp_tested = ["Sausage_A", "Sausage_B", "Sausage_D"]
# 중량 기준 (g)
weight_standard = 100
# HACCP 미검사 품목 리스트 반환
def untested(factory_products, haccp_tested):
return [product for product in factory_products if product not in haccp_tested]
# 중량 미달 품목의 갯수 반환
def underweight(factory_products):
untested_products = untested(factory_products, haccp_tested)
return len([product for product in untested_products if factory_products[product] < weight_standard])
#해당 값에 리턴 앞에 len 함수를 통해
for in 반복문으로 []안에 넣고 딕셔너리를 리스트로 보고 리스트 컴프리헨션을 시도했다
# 함수 호출 및 결과 출력
print("HACCP 미검사 품목 리스트:", untested(factory_products, haccp_tested))
print("중량 미달 품목 갯수:", underweight(factory_products))
과연.....
HACCP 미검사 품목 리스트: ['Sausage_C', 'Sausage_E', 'Sausage_F', 'Sausage_G']
중량 미달 품목 갯수: 2
^리스트 컴프리헨션을 사용하여 조금 더 Pythonic한 코딩이 된 것 같다