Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열 튜플의 첫 번째 문자 추출하는 방법

문자열로 이루어진 튜플이 있을 때, 각 문자열의 첫 번째 문자만 모아서 새로운 리스트를 만들어야 하는 경우가 자주 있습니다. 예를 들어 요일 약어 튜플에서 각 요일의 첫 글자만 추출하는 상황을 생각해 볼 수 있습니다. 이번 글에서는 두 가지 방법을 소개합니다.

방법 1: 인덱스 활용

가장 직관적인 방법은 for 루프를 사용해 튜플의 각 요소를 순회하면서 인덱스 0으로 첫 번째 문자를 추출하는 것입니다. 이후 list() 함수를 적용해 결과를 리스트로 변환합니다.

예제

tupA = ('Mon', 'Tue', 'Wed', 'Fri')
# 주어진 튜플
print("Given list : \n" ,tupA)
# for 루프와 인덱스 사용
res = list(sub[0] for sub in tupA)
# 결과 출력
print("First index charaters:\n",res)

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Given list :
('Mon', 'Tue', 'Wed', 'Fri')
First index charaters:
['M', 'T', 'W', 'F']

제너레이터 표현식 sub[0] for sub in tupA가 각 문자열의 첫 글자를 순서대로 생성하고, list()가 이를 리스트 ['M', 'T', 'W', 'F']로 만들어 줍니다.

방법 2: next와 zip 활용

두 번째 방법은 zip과 next 함수를 조합하는 것입니다. 튜플에 언패킹 연산자(*)와 함께 zip을 적용하면 각 문자열의 같은 위치에 있는 문자들이 묶이는데, 이 중 첫 번째 그룹이 바로 모든 문자열의 첫 글자입니다. next 함수로 이 첫 번째 그룹을 가져오면 원하는 결과를 얻을 수 있습니다.

예제

tupA = ('Mon', 'Tue', 'Wed', 'Fri')
# 주어진 튜플
print("Given list : \n" ,tupA)
# next와 zip 사용
res = list(next(zip(*tupA)))
# 결과 출력
print("First index charaters:\n",res)

실행 결과

위 코드를 실행하면 첫 번째 방법과 동일한 결과를 얻을 수 있습니다.

Given list :
('Mon', 'Tue', 'Wed', 'Fri')
First index charaters:
['M', 'T', 'W', 'F']

정리

인덱스를 활용한 방법은 코드의 의도가 명확하게 드러나 가독성이 좋고, next와 zip을 활용한 방법은 한 줄로 간결하게 처리할 수 있다는 장점이 있습니다. 두 방법 모두 결과는 동일하므로, 상황과 코드 스타일에 맞게 선택하면 됩니다.