티스토리 뷰
1. setdefault
- 딕셔너리에 새로운 key와 value를 추가할 때, if 로 해당 key가 있는지 확인하는 과정을 간소화 해줌
- 해당 값이 없으면 지정한 default값을 반환, 있으면 원래 값을 반환
clothes = [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]
item_book = {}
for item, ctg in clothes:
item_book.setdefault(ctg,[]).append(item)
item_book
# {'headgear': ['yellow_hat', 'green_turban'], 'eyewear': ['blue_sunglasses']}
2. setdefault와 get의 차이
- 키가 없을 때, get은 값만 반환하고 딕셔너리는 그대로, setdefault는 딕셔너리에 기본값을 추가 한다.
item_book = {}
item_book.setdefault("headgear", 0) # 0 # header가 0으로 추가됨
print(item_book) # 출력: {'headgear': 0}
item_book.get("eyewear", 1) # 1
print(item_book) # 출력: {'headgear': 0} # eyewear가 추가되진 않음
3. keys, values, items
1) keys(): 모든 키를 가져온다
2) values(): 모든 값을 가져온다
3) items(): (키,값) 튜플의 리스트를 가져온다.
item_book.keys() # dict_keys(['headgear', 'eyewear'])
item_book.values() # dict_values([['yellow_hat', 'green_turban'], ['blue_sunglasses']])
item_book.items() # dict_items([('headgear', ['yellow_hat', 'green_turban']), ('eyewear', ['blue_sunglasses'])])
4. 2차원 배열을 1차원으로(리스트 컴프리헨션: 바깥루프→안쪽루프 순으로 작성)
# item_book.values() = dict_values([['yellow_hat', 'green_turban'], ['blue_sunglasses']])
result = []
for i in item_book.values(): # 바깥루프
for j in i: # 안쪽루프
result.append(j)
result # ['yellow_hat', 'green_turban', 'blue_sunglasses']
[j for i in item_book.values() for j in i] # ['yellow_hat', 'green_turban', 'blue_sunglasses']
# (참고) 잘못된 순서 : i는 정의 되지 않은 상태에서 먼저 사용되서 이상한 값이 나옴
[j for j in i for i in item_book.values()] # ['blue_sunglasses', 'blue_sunglasses']
반응형
'AI > Python' 카테고리의 다른 글
[python] lambda, sorted(iterable,key,reverse) (0) | 2024.12.22 |
---|---|
[python] 접두사 startswith (1) | 2024.12.20 |
[python] 해시(Hash)와 딕셔너리(dict) (0) | 2024.12.19 |
[python] 이터레이터와 제너레이터 (1) | 2024.12.09 |
[python] 클로저와 nonlocal, 데코레이터(@) (0) | 2024.12.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- IH
- opic
- Ai
- Python
- SQL
- ChatGPT
- llm
- 프로그래머스
- 스크랩
- 빅데이터 분석기사
- 실기
- 아침운동
- 고득점 Kit
- 오픽
- 영어회화
- 운동
- 다이어트
- 티스토리챌린지
- 30분
- 경제
- 아침
- C언어
- 습관
- 미라클모닝
- 뉴스
- 오블완
- 기초
- 줄넘기
- 갓생
- 루틴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함