2014-01-27 4 views
1

저는 여기에 초보이며 파이썬과 관련된 질문을하고 있습니다.':'을 (를) 포함하는 목록을 파이썬으로 사전으로 변환하는 방법

city:NewYork population:30 area:1000 
city:LosAngles population:3 area:500 
..... 

하지만 데이터는 목록에서 예를 들면 다음과 같습니다

나는 예를 들어, 도시 이름, 인구와 지역의 목록을 가지고

list[0] = 'city:NewYork population:30 area:1000' 
list[1] = 'city:LosAngles population:3 area:500' 

내가 사전 목록에이 목록을 변환하고 싶습니다 결과가되고 싶습니다 :

result[0]["city"] =NewYork 
result[0]["population"] = 30 

나는 많은 방법을 시도하지만, 그것을 해결하는 방법을 잘 모릅니다. 아무도 도와 줄 수 있습니까? 미리 감사드립니다. ! 콜론 다음에 공백

+2

변수 이름으로'list'를 사용하지 마십시오; 내장형을 가린다. –

답변

5

분할 : inputlist 문자열의 원래리스트는

result = [dict(item.split(':') for item in value.split()) for value in inputlist] 

.

데모 :

>>> inputlist = '''\ 
... city:NewYork population:30 area:1000 
... city:LosAngles population:3 area:500 
... '''.splitlines() 
>>> [dict(item.split(':') for item in value.split()) for value in inputlist] 
[{'city': 'NewYork', 'area': '1000', 'population': '30'}, {'city': 'LosAngles', 'area': '500', 'population': '3'}] 
+0

고마워요! 그것은 작동! 하지만 ValueError : 사전 업데이트 시퀀스 요소 # 6의 길이는 1입니다. 2는 큰 파일을 처리 할 때 필요합니다. 그 다음에는 무엇이 문제입니까? – xhyellow

+0

@ user3240660 : 적어도 하나의 항목이 있습니다. 여기에는'item'에':'가 없습니다. 그래서 도시 인구 : 30 지역 : 1000 "'또는 빈 줄 또는 유사한. 아마도 마지막 줄이 비어있을 것입니까? –

+0

네, 맞습니다! 다시 한 번 감사드립니다. – xhyellow

관련 문제