TODAY TIL
오늘은 파이썬에서 자주 사용하는 딕셔너리와 for문, replace를 쉽게 이해하고 활용하는 방법을 프로그래머스에 관련 문제를 풀어보면서 정리하려고 합니다. 이 글을 통해 딕셔너리의 키와 값, 그리고 이를 활용하는 방법을 알기 쉽게 설명해 보겠습니다.
문제 상황: 숫자와 영단어의 변환
코딩을 하다 보면 숫자를 영단어로 바꾸거나, 영단어를 숫자로 바꿔야 하는 상황이 생깁니다. 예를 들어 "one4seveneight" 같은 문자열이 있으면 "1478"로 바꾸고 싶을 때, 파이썬에서 딕셔너리를 활용해 쉽게 해결할 수 있습니다.
1. 딕셔너리의 이해: 키와 값
딕셔너리는 두 가지 요소로 이루어져 있습니다:
- 키 (key): 특정 값을 찾는 데 사용되는 이름입니다.
- 값 (value): 키에 연결된 실제 데이터입니다.
예를 들어, 숫자와 그에 해당하는 영단어를 딕셔너리로 표현해 보겠습니다.
number_dict = {
"zero": "0",
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5",
"six": "6",
"seven": "7",
"eight": "8",
"nine": "9"
}
이 딕셔너리에서 키는 "zero", "one" 같은 영단어이고, 값은 "0", "1" 같은 숫자로 이루어진 문자열입니다.
2. 딕셔너리와 for문: 키와 값을 쌍으로 사용하기
딕셔너리를 반복문 for에서 사용할 때, 키만 가져올 수도 있지만, items() 메서드를 사용하면 키와 값을 쌍으로 가져올 수 있습니다.
예를 들어, for word, digit in number_dict.items():라고 쓰면 word는 키, digit는 값이 됩니다. 따라서, number_dict의 "zero"와 "0"처럼 한 쌍씩 꺼내 올 수 있습니다.
이 구조를 활용해 문자열 속의 영단어를 숫자로 바꿀 수 있습니다.
3. replace() 함수로 변환하기
이제 replace() 함수를 활용해 봅시다. replace(찾을 문자열, 바꿀 문자열) 형태로 쓰며, 문자열에서 찾을 부분을 바꿀 부분으로 교체해 줍니다.
예를 들어 s.replace(word, digit)로 for문 안에서 영단어를 숫자로 바꾸는 작업을 할 수 있습니다.
최종 코드 예시
이제 모든 내용을 종합해서 최종 코드를 작성해 보겠습니다. 예를 들어, "one4seveneight"을 "1478"로 바꾸는 코드입니다:
def solution(s):
# 숫자 영단어 변환표
number_dict = {
"zero": "0", "one": "1", "two": "2", "three": "3", "four": "4",
"five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9"
}
# for문과 replace로 변환하기
for word, digit in number_dict.items():
s = s.replace(word, digit)
return int(s) # 숫자 형태로 변환 후 반환
이 코드는 for문을 통해 딕셔너리의 각 키와 값을 가져와 replace로 문자열에서 단어를 숫자로 교체한 후, 숫자로 반환합니다.
정리
- 딕셔너리는 키-값 쌍으로 구성되어 있습니다.
- **for word, digit in dict.items()**를 사용하면 키와 값을 한 쌍씩 가져올 수 있습니다.
- replace() 함수는 찾을 부분과 바꿀 부분을 인자로 받아 문자열을 교체합니다.
이 글을 통해 딕셔너리와 for문, 그리고 replace의 활용법을 잘 이해하셨길 바랍니다! 더 쉬운 설명이나 추가 질문이 있다면 언제든지 댓글로 남겨 주세요. 😊
'python' 카테고리의 다른 글
99클럽 코테 스터디_4기 6일차 TIL (3) | 2024.11.03 |
---|---|
99클럽 코테 스터디_4기 5일차 TIL (0) | 2024.11.01 |
99클럽 코테 스터디_4기 3일차 TIL (0) | 2024.10.30 |
99클럽 코테 스터디_4기 2일차 TIL (1) | 2024.10.29 |
99클럽 코테 스터디_4기 1일차 TIL (0) | 2024.10.28 |