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

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

key1=value1; key2=value2; key3=value3

1. 문자열로부터 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']

2. key와 value를 분리하여 딕셔너리에 추가

key와 value를 분리한 뒤에, 다시 반복문을 이용하여 dict에 추가하면 됩니다. 아래 예제에서 my_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()

print(my_dict)

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

Output:

{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
key=key1, value=value3
key=key2, value=value3
key=key3, value=value3

3. zip()을 이용하여 딕셔너리 객체 생성

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

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

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 = dict(zip(keys, values))
print(my_dict)

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

Output:

{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
key=key1, value=value1
key=key2, value=value2
key=key3, value=value3
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha