혼공파 32 ~ 34강
1. 딕셔너리와 반복문
# 마트에서 어떤 제품 관리
products = [
['건망고 슬라이스', 4000, '식품', 400, '태국', '2023-0804'],
['인스타360 링크', 140000],
['와콤 프로펜', 150000]
]
products[0] # ?
products[1] # ?
products[2] # ?
# 딕셔너리라는 새로운 자료형 탄생
# {}을 사용하며 키:값으로 짝지어진 자료 형태
# 키 : 숫자, 문자열, 불(, 튜플)
# 값 : 모든 값
product = {
"제품명":"건망고 슬라이스",
"가격": 4000,
"분류": "식품",
"원산지": "태국"
}
product["제품명"] # "건망고 슬라이스"
product["가격"] # 4000
product["분류"] # "식품"
# 딕셔너리 반복문
for key in product:
print(key)
print(product[key])
print("-" * 20)
# 리스트에 딕셔너리를 사용한 중첩
products = [{
"제품명":"건망고 슬라이스",
"가격": 4000,
"분류": "식품",
"원산지": "태국"
}, {
"제품명":"건망고 슬라이스",
"가격": 4000,
"분류": "식품",
"원산지": "태국"
}]
for product in products:
for key in product:
print(key)
print(product[key])
print()
print("-"*20)
2. 딕셔너리 자료 추가 / 제거
product = {
"name": "7D 건조 망고",
"type": "당절임"
}
print(product) # {'name': '7D 건조 망고', 'type': '당절임'}
# 요소의 값을 변경하는 방법
product["name"] = "8D 건조 망고"
# 요소를 추가하는 방법
product["price"] = 4000
# 요소를 제거하는 방법
del product["type"]
# 키의 존재 확인하는 방법
print("price" in product) # 존재 여부 결과로 True or False
if "price" in product:
print(product["price"])
else:
print("아직 가격 요소가 없습니다.")
# get()
print(product.get("name"))
print(product.get("유통기한"))
## 존재하지 않는 키를 get()에 넣어도 오류를 발생시키지 않고,
## None 값을 리턴한다.
if product.get("price") != None:
print(product["price"])
else:
print("아직 가격 요소가 없습니다.")
3. 연습 문제
1 - 빈도
#1 빈도 (Frequency)
numbers = [1,2,6,8,4,3,2,1,9,5,4,9,7,2,1,3,5,4,8,9,7,2,3]
counter = {}
counter2 = {}
## (1) 요소의 출현을 확인하는 코드 : 요소를 초기화
## (2) 해당 요소의 빈도를 확인하는 코드
for number in numbers:
if number not in counter:
counter[number] = 0
counter[number] += 1
print(counter)
for number in numbers:
if number not in counter2:
counter2[number] = ""
counter2[number] += "■" # 히스토그램으로 표현
for key in sorted(counter2.keys()):
print(f"{key}: {counter2[key]}")
2 - 자료형 확인
#1 자료형 확인 응용
character = {
"name" : "기사",
"level" : 12,
"item" : {
"sword": "불꽃의 검",
"armor": "풀플레이트"
},
"skill": ["베기", "세게 베기", "아주 세게 베기"]
}
for key in character:
if type(character[key]) is dict:
for 키 in character[key]:
print(f"{키} : {character[key][키]}")
elif type(character[key]) is list:
for 요소 in character[key]:
print(f"skill : {요소}")
else:
print(f"{key} : {character[key]}")
'Base > Python' 카테고리의 다른 글
9. reversed() 함수 / while 반복문 / break / continue 키워드 (0) | 2023.02.18 |
---|---|
8. 범위와 반복문 / 수열 / 온라인 저지 여러 줄 입력 받기 (2) | 2023.02.17 |
6. for 반복문과 리스트, 항등원, 전개 연산자 (0) | 2023.02.11 |
5. 수열/배열/리스트 (0) | 2023.02.09 |
4. Bool/if 조건문 (0) | 2023.02.08 |
댓글