튜플로 구성된 리스트에서 숫자 형태의 문자열 요소를 실수(float) 값으로 변환해야 하는 경우가 종종 있습니다. 이럴 때 isalpha() 메서드를 사용하면 해당 요소가 알파벳(문자)인지 여부를 손쉽게 판별할 수 있으며, 알파벳이 아닌 요소는 float() 함수를 통해 실수 값으로 변환할 수 있습니다.
아래는 이를 구현한 예제 코드입니다.
예제 코드
my_list = [("45", "Jane"), ("11", "Will"), ("37.68", "86.78"), ("Rob", "89.90")]
print("The list is : ")
print(my_list)
my_result = []
for tup in my_list:
temp_val = []
for elem in tup:
if elem.isalpha():
temp_val.append(elem)
else:
temp_val.append(float(elem))
my_result.append((temp_val[0], temp_val[1]))
print("The float values are : ")
print(my_result)실행 결과
The list is :
[('45', 'Jane'), ('11', 'Will'), ('37.68', '86.78'), ('Rob', '89.90')]
The float values are :
[(45.0, 'Jane'), (11.0, 'Will'), (37.68, 86.78), ('Rob', 89.9)]코드 설명
튜플들로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
변환 결과를 담기 위한 빈 리스트를 하나 생성합니다.
리스트의 각 튜플을 순회하면서, 각 튜플의 요소를 처리하기 위한 임시 리스트를 생성합니다.
각 요소에 대해 isalpha() 메서드를 호출하여 알파벳 여부를 검사합니다.
요소가 알파벳이라면 그대로 임시 리스트에 추가합니다.
알파벳이 아니라면 float() 함수로 실수 값으로 변환한 뒤 임시 리스트에 추가합니다.
모든 처리가 끝난 결과 리스트를 콘솔에 출력합니다.
참고: 더 안전한 변환 방법
isalpha()는 숫자와 특수문자가 섞인 문자열을 모두 "알파벳이 아닌 값"으로 판단하기 때문에, 변환할 수 없는 형식의 문자열이 포함되어 있으면 오류가 발생할 수 있습니다. 이런 경우 try/except 문을 활용하면 더욱 안전하게 처리할 수 있습니다.
def convert_to_float(value):
try:
return float(value)
except ValueError:
return value
my_result = [tuple(convert_to_float(elem) for elem in tup) for tup in my_list]
print(my_result)이 방식은 숫자로 변환 가능한 문자열만 실수로 바꾸고, 나머지는 원래 값을 그대로 유지하므로 다양한 데이터 형식에 유연하게 대응할 수 있다는 장점이 있습니다.