2013-07-19 3 views
0

파이썬에서 사전에 문자열을 변환 :방법을 다음과 같이 내가 데이터를

data_dict = {'a':['b','c','a'],'b':['c','d'],'c':['b'], 'd':['c']} 

내가 시도 :

data = """ 
a:b,c,a 
b:c,d 
c:b 
d:c 
""" 

내가 이런 사전에이 문자열을 변환 할

data_list = data.strip('\n').split('\n') 
data_str = ", ".join(repr(i) for i in data_list) 
data_dict = {} 

for i in range(len(data_list)): 
    keys, values = data_list[i].split(':') 
    key = keys.split('\t') 
    value = values.split('\t') 
    data_dict = dict(zip(key, value)) 
    print data_dict 

하지만 불행히도, 나는 :

{'a':'b,c,a'} 
{'b':'c,d'} 
{'c':'b'} 
{'d':'c'} 

누구든지 나를 도와 줄 수 있습니까? 많은 감사합니다.

답변

1

어떻게 같은 약 :

>>> kvs = (line.split(":", 1) for line in data.strip().splitlines()) 
>>> d = {k: v.split(",") for k,v in kvs} 
>>> d 
{'a': ['b', 'c', 'a'], 'c': ['b'], 'b': ['c', 'd'], 'd': ['c']} 
+0

가 SOOOOOO 감사합니다 !!!! 그것은 작동! – user2597888

관련 문제