문자열의 대소문자를 변환하는 문제
문제
구현
# 입력받기
text = input()
# 방법 1: swapcase() 메서드
def swap_case(s):
return s.swapcase()
# 방법 2: for 루프 사용
def convert_case(s):
result = ""
for char in s:
if char.isupper():
result += char.lower()
else:
result += char.upper()
return result
# 방법 3: 리스트 컴프리헨션 활용
def list_comprehension_case(s):
return ''.join([char.lower() if char.isupper() else char.upper() for char in s])
# 방법 4: map() 함수 활용
def map_case(s):
return ''.join(map(lambda char: char.lower() if char.isupper() else char.upper(), s))
# 실행 결과
print(swap_case(text))
print(convert_case(text))
print(list_comprehension_case(text))
print(map_case(text))
Python
복사
보충설명
1. swapcase() 메서드
•
특징: 문자열의 대소문자를 자동으로 변환하는 Python 내장 메서드
•
장점: 가장 간단하고 직관적인 방법
text = "Hello World"
print(text.swapcase()) # 출력: hELLO wORLD
Python
복사
2. for 루프를 사용한 변환
•
특징: 각 문자를 순회하면서 대문자는 소문자로, 소문자는 대문자로 변환
•
장점: 디버깅이나 추가 조건을 설정할 때 유용
text = "Hello World"
result = ""
for char in text:
if char.isupper():
result += char.lower()
else:
result += char.upper()
print(result) # 출력: hELLO wORLD
Python
복사
3. 리스트 컴프리헨션
•
특징: 조건부 리스트 컴프리헨션으로 문자열 변환
•
장점: 코드가 간결하고 파이썬스럽게 작성 가능
text = "Hello World"
result = ''.join([char.lower() if char.isupper() else char.upper() for char in text])
print(result) # 출력: hELLO wORLD
Python
복사
4. map() 함수 활용
•
특징: map()으로 문자열의 각 문자를 변환하는 함수를 적용
•
장점: 대규모 데이터에 효율적으로 처리 가능
text = "Hello World"
result = ''.join(map(lambda char: char.lower() if char.isupper() else char.upper(), text))
print(result) # 출력: hELLO wORLD
Python
복사
출력 방식 비교
방법 | 장점 | 단점 | 추천 상황 |
swapcase() | 간단하고 효율적 | 추가 조건 처리 불가능 | 기본 대소문자 변환 |
for 루프 | 디버깅과 조건 추가 가능 | 코드가 길어질 수 있음 | 변환 과정을 명확히 하고 싶을 때 |
리스트 컴프리헨션 | 간결하고 가독성이 좋음 | 리스트 생성 비용 발생 | 조건 추가와 간결성 모두 필요할 때 |
map() | 간결하고 대규모 데이터 처리에 적합 | 코드가 복잡해질 수 있음 | 간결함과 성능이 필요한 경우 |
추천 방식
1.
간단한 대소문자 변환: swapcase() 사용
2.
디버깅이 필요한 경우: for 루프 활용
3.
조건이 추가된 변환: 리스트 컴프리헨션
4.
대규모 데이터 처리: map() 사용
Related Posts
Search