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

Python에서 세미콜론으로 구분된 문자열을 딕셔너리로 변환하는 방법

세미콜론으로 구분된 문자열을 딕셔너리로 변환하기

파이썬에서 다음과 같은 형태의 문자열이 있고, 이를 딕셔너리(dictionary)로 변환하고 싶다고 가정해 보겠습니다.

"Name1=Value1;Name2=Value2;Name3=Value3"

이 작업은 생각보다 훨씬 간단합니다. 핵심 아이디어는 문자열을 두 단계로 나누는 것입니다.

  1. 먼저 세미콜론(;)을 기준으로 문자열을 분할하여 "Name1=Value1", "Name2=Value2", "Name3=Value3" 형태의 개별 항목들을 얻습니다.
  2. 그다음 각 항목을 등호(=)를 기준으로 한 번 더 분할하여 키(key)와 값(value)의 쌍을 만듭니다.

마지막으로 이렇게 만든 키-값 쌍들을 dict() 생성자에 전달하면 딕셔너리가 완성됩니다.

예제 코드

>>> s = "Name1=Value1;Name2=Value2;Name3=Value3"
>>> dict(item.split("=") for item in s.split(";"))
{'Name2': 'Value2', 'Name3': 'Value3', 'Name1': 'Value1'}

동작 원리

s.split(";")는 세미콜론을 기준으로 문자열을 나눕니다. 이후 제너레이터 표현식이 각 항목에 대해 item.split("=")을 호출하여 키와 값으로 분리하고, 그 결과를 dict() 생성자에 넘겨 최종적으로 딕셔너리를 반환합니다. 단, 이 방법은 모든 항목이 정확히 하나의 =를 포함한다는 전제하에 동작하므로, 값 안에 등호가 포함될 수 있는 경우에는 maxsplit=1 옵션을 사용하는 것이 안전합니다.