2014-06-24 3 views
-3

두 개의 사전이 있습니다. 하나는 국가 이름을 저장하고 다른 하나는 해당 국가의 위도와 긴 좌표를 저장합니다. path_dict의 값을 다른 사전의 일치하는 키 값으로 대체하고 싶습니다. 한 사전의 값을 다른 키의 키로 대체하는 방법은 무엇입니까?

pathcoord_dict = {"AED": [25.30000,55.43330], "EUR": [50.85000,4.35000], 
        "JPY": [35.68330,139.73330], "CNY": [39.91660,116.38330], 
        "GBP": [51.50000,-0.11670], "CAD": [45.42000, -75.67000], 
        "BRL": [-23.56660,-46.6332], "AUD": [ -33.91660,151.28330], 
        "NZD": [-36.88320,174.75000], "CHF": [46.23330,6.0667], 
        "NOK": [59.93330, 10.68330], "SEK": [59.38330 ,18.00000], 
        "SGD": [1.36670,103.75000], "HKD": [21.75000,115.00000], 
        "CNY": [39.91660,116.38330], "INR": [18.96670,72.83330], 
        "RUB": [55.75000, 37.61670], "MXN": [ 19.46670,-99.14990], 
        "TRY": [41.03330,29.00000], "AED": [25.30000,55.43330], 
        "BRL": [-23.56660,-46.6332]} 

path_dict = {'AUD': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'CHF': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'CNY': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'TRY': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'AED': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'GBP': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'NZD': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'CAD': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'MXN': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'NOK': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'RUB': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'INR': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'JPY': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 
      'BRL': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 
      'EUR': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 'SEK': [['USD'], ['JPY'], ['JPY'], 
        ['EUR'], ['EUR'], ['INR'], ['INR'], ['USD']], 
      'SGD': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']], 
      'HKD': [['USD'], ['JPY'], ['JPY'], ['EUR'], ['EUR'], ['INR'], 
        ['INR'], ['USD']]} 

나는 path_dict 이상이

{'CHF': [[35.68330,139.73330], [50.85000,4.35000], [18.96670,72.83330], etc], ...} 
+1

당신이 우리와 공유하고 싶은 무엇이든을 시도 했습니까? –

+1

'pathcoord_dict'가 잘못되었습니다 -'[ 'EUR']'는 dict의 키가 될 수 없습니다. – furas

+0

고맙다. 나는 그 오류를 바로 잡았다. – unionjack22

답변

2

루프 모양 및 값 목록의 각 요소에 대한 좌표를 잡아 최종 결과를 얻기 위해 노력하고있어. 다음과 같은 뭔가 다음 pathcoord_dict 사전에 "USD"에 대한 누락 된 항목이 추가되면

for k, v in path_dict.items(): 
    coords = [pathcoord_dict[x[0]] for x in v] 
    path_dict[k] = coords 
1

, 당신은 dictionary comprehension 표현라는 것을 사용하여이 같은 (또는 표시) 할 수있는 :

result = {country: [pathcoord_dict[i[0]] for i in path_dict[country]] 
      for country in path_dict} 

for country in result: 
    print '{!r}: {}'.format(country, result[country]) 

산출 :

'TRY': [[0.0, 0.0], [35.6833, 139.7333], [35.6833, 139.7333], [50.85, 4.35], 
     [50.85, 4.35], [18.9667, 72.8333], [18.9667, 72.8333], [0.0, 0.0]] 
'AUD': [[0.0, 0.0], [35.6833, 139.7333], [35.6833, 139.7333], [50.85, 4.35], 
     [50.85, 4.35], [18.9667, 72.8333], [18.9667, 72.8333], [0.0, 0.0]], 
     ... 
+0

게시 된 답변 중 하나가 문제를 해결합니까? – martineau