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

파이썬으로 튜플 리스트의 요소를 실수(float)로 변환하는 프로그램

튜플로 구성된 리스트에서 숫자 형태의 문자열 요소를 실수(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)

이 방식은 숫자로 변환 가능한 문자열만 실수로 바꾸고, 나머지는 원래 값을 그대로 유지하므로 다양한 데이터 형식에 유연하게 대응할 수 있다는 장점이 있습니다.