Python - 문자열을 딕셔너리로 변환

By JS | Last updated: June 22, 2021

아래와 같은 String을 dict로 변환하는 방법을 소개합니다.

key1=value1; key2=value2; key3=value3

문자열로 부터 key, value 분리

먼저 문자열로부터 key와 value를 분리해야 합니다.

str = "key1=value1; key2=value2; key3=value3"

keys = []
values = []
data_list = str.split(";")

for data in data_list:
    pair = data.split("=")
    keys.append(pair[0])
    values.append(pair[1])

print(keys)
print(values)

Output:

['key1', ' key2', ' key3']
['value1', 'value2', 'value3']

key와 value를 dict에 추가

key와 value를 분리한 뒤에, 다시 반복문을 이용하여 dict에 추가하면 됩니다.

str = "key1=value1; key2=value2; key3=value3"

keys = []
values = []
data_list = str.split(";")

for data in data_list:
    pair = data.split("=")
    keys.append(pair[0])
    values.append(pair[1])

my_dict = {}
for k in keys:
    k = k.strip()
    for v in values:
        my_dict[k] = v.strip()

for k, v in my_dict.items():
    print("key={}, value={}".format(k, v))

Output:

key=key1, value=value3
key=key2, value=value3
key=key3, value=value3

zip으로 dict 생성

위에서는 for loop를 이용하여 dict를 생성하였는데, zip()을 이용하면 dict를 간단히 생성할 수 있습니다.

zip()에서는 문자열의 공백을 제거할 수 없기 때문에, keys와 values 리스트를 만들 때 미리 처리되어야 합니다.

my_dict = dict(zip(keys, values))

for k, v in my_dict.items():
    print("key={}, value={}".format(k, v))

Output:

key=key1, value=value1
key=key2, value=value2
key=key3, value=value3

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha