2016-12-07 7 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") 

は今のところそれはちょうどオフに印刷されます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" 
    ] 
} 

次にPythonコードはこのようです。

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 ") ')、各値に対してそれを大陸の辞書に追加します。答えに例を挙げたい場合は、質問を編集してください。 –

関連する問題