2016-12-07 4 views
-1

그래서 사용자에게 대륙 이름을 입력하도록 요청한 함수가 있는데 그 함수는 사전 [ "값"]을 통해 대륙을 찾아서 검색해야합니다 대륙에있는 모든 국가의 목록을 인쇄하려면 사전 [ "keywords"]에있는 모든 국가를 거쳐야합니다.사전 값과 연관된 키워드 인쇄

def filterCountriesByContinent(self): 
    continentinp = input(str("Please enter a continent: ")) #user input 
    if continentinp in self.Dictionary["values"]: #check if input in Dictionary.values 
     return print(self.Dictionary["keywords"]) #if in Dictionary.values, print off associated countries 
    else: 
     return print("That country is not in the Dictionary") 

을 지금 그냥 떨어져 인쇄되어

사전 [ "값"] 지금까지 내가 가진 대륙의 목록을 사전 [ "키워드"] 국가

의 목록을 =을 = 입력 대륙에없는 국가를 포함하여 사전 [ "keywords"]에있는 국가의 전체 목록입니다.

+0

대륙과 국가의 매핑이 없습니까? –

+0

'print (self.Dictionary [ "keywords"])'는 항상 같은 것을 출력합니다. 어쨌든'continentinp'와 관련이 있어야하지 않습니까? –

+0

이전 함수에서 우리는 txt 파일의 입력을 받아 데이터를 부분으로 분할하고 Dictionary [ "values"] 및 Dictionary [ "keywords"]와 해당 부분을 연결합니다. 내가 제대로 작동하는 다른 인쇄 섹션을 만들려면 그들을 연관시키는 방법을 알아 내려고 노력하고있어. – MezyMinzy

답변

1

대륙과 그 나라의 사전이 먼저 필요합니다. 이런 식으로 보일 것입니다.

{ 
    "North America": [ 
    "United States of America", 
    "Canada", 
    "Cuba", 
    "Mexico" 
    ], 
    "South America": [ 
    "Brazil", 
    "Argintina" 
    ], 
    "Europe": [ 
    "United Kingdom", 
    "Germany" 
    ], 
    "Africa": [ 
    "Egypt" 
    ] 
} 

그러면 파이썬 코드는 다음과 같습니다.

dict_of_cont = # here is your dictionary 
continent = raw_input("Enter the continent you wish to list the countries of: ") 
for cont in dict_of_cont[continent.lower()]: # loop through the countries. 
    print(cont + " is in " + continent.lower()) 

그러나 결과를 얻으려면 국가를 올바르게 입력해야합니다.

+0

당신이 중국, 아시아 로 입력을 할 수있는 기능을 알고 일이겠습니까 미국, 북미 브라질, 남미 일본, 아시아 캐나다, 북미 인도네시아, 아시아 나이지리아, 아프리카 멕시코, 북미 이집트, 아프리카 프랑스, ​​유럽 이탈리아, 유럽 남아프리카 공화국, 아프리카 한국, 아시아 콜롬비아, 남미 당신이 보여준 것과 같은 사전에 같은 대륙의 모든 것들을 수집? 제공된 국가 및 대륙 목록은 txt 파일로 제공되며 각 국가, 대륙은 다른 줄에 설정되어 있습니다. – MezyMinzy

+0

당신은 이것을 위해 [link here.] (https://docs.python.org/2/library/csv.html) CSV를 사용해 볼 수 있습니다. 그런 다음 줄 바꿈 ('str.strip ("\ n") '), 각 값에 대륙 사전에 추가됩니다. 대답에 예제를 넣으려면 질문을 편집하십시오. –