2013-03-02 2 views
0

두 개의 문자열 (길이가 같은)이 있습니다. 그리고 그 키가 하나의 문자열에있는 문자가있는 사전을 만들고 싶습니다. 다른 문자열.두 개의 문자열을 사용하여 사전을 채우고 키 - 값 쌍을 생성합니다.

x='qwert' 
y='asdfg' 

그런 사전이

d[q]='a' 
d[w]='s' 
d[e]='d' 
d[r]='f' 
d[t]='g' 

을 포함해야는 C에있는 것처럼 (나는이

for i,j in x,y: 
    d[i]=j 

같은 일을 시도하지만이 파이썬에서 작동하지 않는 것). 어떻게해야합니까?

답변

9
d = dict(zip(x, y)) 

아주 간단한 해결책은, 당신은 단지 다음, 함께 두 문자열을 zipdict 생성자에 전달할 필요가있다.

내역 :

  • zip(x, y)는 튜플의 목록을 만듭니다 그룹 문자열에서 "같은 위치"에있는 편지를.

    [('q', 'a'), ('w', 's'), ('e', 'd'), ('r', 'f'), ('t', 'g')] 
    
  • dict() 두 원소 튜플들의 목록에 걸리고, 사전에 그들에게 키 - 값 쌍을 만든다. 사전 컨테이너를 주문하지 않기 때문에 그건, 대신 그들은 단지 다른 값을 매핑 - 사전이 튜플의 순서대로 표시되지 않습니다

    {'q': 'a', 'r': 'f', 'e': 'd', 't': 'g', 'w': 's'} 
    

    참고.

+1

+1. 파이썬은 너무 단순하지만, 때로는 놀랍습니다. 또한, 6k 평판에 축하합니다 :) – TerryA

+0

나는 그것이 얼마나 쉬운 지에 놀랐습니다. @Haidro는 "404"담당자를 축하합니다. 오, 내가 망 쳤어. –

+0

dict() 생성자가 파이썬 2.7에서 작동합니까 ?? 이 오류가 계속 발생 : TypeError : 'dict'개체를 호출 할 수 없습니다. – OneMoreError

관련 문제