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

Python – 문자열 접미사 단위를 실제 숫자 값으로 변환하는 방법

프로그래밍을 하다 보면 "5Cr", "7M", "9B"처럼 숫자 뒤에 축약된 단위(접미사)가 붙은 문자열을 실제 숫자 값으로 변환해야 하는 경우가 있습니다. 인도식 단위인 Cr(Crore, 1천만), L(Lakh, 10만)부터 국제적으로 통용되는 K(천), M(백만), B(10억), Tr(조)까지, 각 단위의 배수 값을 담은 딕셔너리를 정의한 뒤 이를 반복 처리하고, replace 메서드로 접미사를 제거하여 곱셈을 통해 손쉽게 변환할 수 있습니다.

예제 코드

다음은 접미사 단위를 실제 값으로 변환하는 전체 과정을 보여주는 예제입니다.

my_list = ["5Cr", "7M", "9B", "12L", "20Tr", "30K"]

print("The list is :")
print(my_list)
value_dict = {"M": 1000000, "B": 1000000000, "Cr": 10000000,
   "L": 100000, "K": 1000, "Tr": 1000000000000}

my_result = []
for element in my_list:
   for key in value_dict:
      if key in element:
         val = float(element.replace(key, "")) * value_dict[key]
         my_result.append(val)

print("The resultant dictionary values :")
print(my_result)

실행 결과

The list is :
['5Cr', '7M', '9B', '12L', '20Tr', '30K']
The resultant dictionary values :
[50000000.0, 7000000.0, 9000000000.0, 1200000.0, 20000000000000.0, 30000.0]

동작 원리 설명

  • 접미사가 붙은 문자열 요소들을 담은 리스트를 정의하고, 콘솔에 출력합니다.

  • 각 단위(K, M, B, Cr, L, Tr)에 대응하는 실제 배수 값을 저장한 딕셔너리를 별도로 정의합니다.

  • 변환된 결과를 담기 위한 빈 리스트를 생성합니다.

  • 원본 리스트의 각 요소를 순회하면서, 내부에서 딕셔너리의 모든 키를 차례대로 확인합니다.

  • 요소 문자열 안에 해당 키(단위)가 포함되어 있는지 검사하고, 포함되어 있다면 replace 메서드로 단위 부분을 제거한 후 나머지 숫자를 float 타입으로 변환합니다.

  • 변환된 숫자에 딕셔너리에 저장된 해당 단위의 배수 값을 곱하여 실제 값을 계산합니다.

  • 계산된 값은 변수에 저장된 뒤, 미리 만들어 둔 결과 리스트에 추가(append)됩니다.

  • 모든 요소의 변환이 끝나면 최종 결과 리스트가 콘솔에 출력됩니다.

참고 사항

여기서 사용된 Cr(Crore)과 L(Lakh)은 인도에서 널리 사용되는 숫자 단위로, 각각 1천만(107)과 10만(105)을 의미합니다. 반면 K, M, B, Tr은 국제 표준 축약 단위로 각각 천(103), 백만(106), 10억(109), 조(1012)를 나타냅니다. 이 방식은 재무 데이터나 대규모 수치를 다루는 데이터 분석에서 유용하게 활용할 수 있으며, 필요에 따라 새로운 단위와 배수 값을 딕셔너리에 추가하기만 하면 확장이 가능합니다.