Python 기초3 별책부록

UICHEOL_HWANG·2023년 8월 8일

파이썬기초

목록 보기
4/12

딕셔너리를 공부하면서 for,zip,map을 좀 활용하게 됐는데
코테에서 많이 나왔던 문법들이라 이제야 조금은 이해가 돼서 까먹지 않게 메모해 놔야겠단 생각으로 작성한다.

여러 개의 값 입력받기(input + split)

세 개의 숫자를 입력받아 가장 작은 숫자를 출력하는 코드를 작성하세요.
입력

10 2 123
출력

2


num_list = list(map(int, input().split()))
min(num_list)

input에서 받은 스트링 값을 공백으로 분리 시킨 뒤 int값으로 일괄 매핑해준뒤 리스트로 뿌려준다 → 보통 input으로 받은 값은 str이 베이스다


**zip

company = ['삼성전자','LG전자','현대차','대한항공','하나투어']
stock = [71800,121000,195000,31900,86600]

for i,j in zip(company,stock):
  print('%8s의 주가는 %10d 입니다'%(i,j))

i와 j를 동일한 길이로 비교하며 같이 출력시킨다
보통 for문을 이중값이나 다중값으로 돌릴때 많이들 사용하는 것 같다.


예제

store = dict(zip(['물품이름','가격(원)','개수'],[['새우칩','옥수수칩','콜라','양파칩'],[1500,1800,700,1300],[3,2,4,1]]))

#dict zip으로 한꺼번에 묶어준 후 

해결법

for i in range(len(store["물품이름"])):
  물품이름 = store['물품이름'][i]
  가격 = store["가격(원)"][i]
  개수 = store["개수"][i]
  print(f'{i+1}번 물품은 {물품이름}이고 가격은 {가격}원이고 수량은 {개수}개 입니다')
  

종류 = len(store["물품이름"])  
총합 = sum([price * quantity for price, quantity in zip(store['가격(원)'], store['개수'])])
평균 = (총합/sum(store["개수"]))

print(f'우리 가게 모든 물건들의 가격 총합은 {총합} 원 입니다')
print(f'우리 가게 모든 물건들의 평균 가격은 {평균} 원 입니다')

for문을 돌리면서~ zip을 사용하면 아주~ 유용하다ㅋ

--- 추가

for i,j in enumerate(zip(store_reset.keys(),store_reset.values())):
  print(f'{i+1}번 물품은 {j[0]}이고 가격은 {j[1][0]}이고 수량은{j[1][1]}개 입니다')

enumerate를 적용시켜주면 i 값에 순번이 부여되고 j값이 리스트로 변환된다
그래서 key 값 value값이 j값에 한번에 묶이게 돼서 인덱싱을 적절하게 해주면 쉽게 꺼낼 수가 있다.

profile
개발 취미로 하는 세일즈맨

0개의 댓글