2015-01-22 4 views
1

로 전환 :파이썬 구문 분석 문자열이 내 목록을 사전 입력

list1 = ('/a/b/c/Hello1/d/e','/a/b/c/Hello2/d/e','/a/b/c/Hello3/d/e') 
list2 = [] 

for x in list1: 
    y = x.split('/')[4] 
    list2.append(y) 

list2 = ['Hello1', 'Hello2', 'Hello3'] 

는 이제 안녕 [1-3] 내 키입니다 사전을 만들려하고 해당 문자열 '가// b/c/Hello [1-3]/d/e '는 값입니다. 어떻게 키와 값을 파이썬으로 연결할 수 있습니까? 나는 이것이 꽤 쉽다는 것을 확신하지만, 나는 모른다.

감사합니다.

+0

경로가 약간 –

답변

2

이것을 달성하기 위해 dict 이해를 사용할 수 있습니다.

>>> {s.split('/')[4] : s for s in list1} 
{'Hello2': '/a/b/c/Hello2/d/e', 
'Hello3': '/a/b/c/Hello3/d/e', 
'Hello1': '/a/b/c/Hello1/d/e'} 
+0

을 변경하지만 값의 목록이 정확하게 구조화되어있는 경우에만 경우 실패 분할에서 시도 OP가 제안하는 방식대로 보다 일반적인 해결책은 zip()을 사용하는 것입니다. – dylrei

+0

@dylrei 잘 모르겠습니다. 목록의 순서는 부적절합니다.이 솔루션은 키가 원래 원래 있던 값과 일치 함을 보증합니다. – CoryKramer

+0

사이버 감사합니다! 그건 완벽하게 작동합니다. @dylrei - 정렬 (list1) 및 정렬 (list2) 작동합니까? 그렇지 않으면 무엇이 문제가 될지 모르겠습니다. 정말 고맙습니다! – Annamarie

1

당신이 목록 1의 요소와리스트 2의 같은 번호를 가지고 있다고 가정 :

dict(zip(list2, list1))