2016-12-15 6 views
-2

辞書にあるすべてのキーがムービーの名前で、すべての値がセット内で再生されるアクタの名前になるように、このファイルコンテンツを辞書に変換する必要があります。ファイルコンテンツの辞書にファイルコンテンツ

例:

Brad Pitt, Sleepers, Troy, Meet Joe Black, Oceans Eleven, Seven, Mr & Mrs Smith 
Tom Hanks, You have got mail, Apollo 13, Sleepless in Seattle, Catch Me If You Can 
Meg Ryan, You have got mail, Sleepless in Seattle 
Diane Kruger, Troy, National Treasure 
Dustin Hoffman, Sleepers, The Lost City 
Anthony Hopkins, Hannibal, The Edge, Meet Joe Black, Proof 

答えて

0

は、以下のことを試してみてください。

res_dict = {} 

with open('my_file.txt', 'r') as f: 
    for line in f: 
     my_list = [item.strip() for item in line.split(',')] 
     res_dict[my_list[0]] = my_list[1:] # To make it a set, use: set(my_list[1:]) 

説明:

split()は、前のリストの各要素の前後にスペースを削除するために使用され,セパレーター

strip()を使用して、リストを形成するために、それぞれの行を分割するために使用される

あなたはwith statement使用する場合、あなたは、ファイルをクローズする必要はありません。明示的に。

[item.strip() for item in line.split(',')]は、list comprehensionと呼ばれます。

出力:なぜdownvote

>>> res_dict 
{'Diane Kruger': ['Troy', 'National Treasure'], 'Brad Pitt': ['Sleepers', 'Troy', 'Meet Joe Black', 'Oceans Eleven', 'Seven', 'Mr & Mrs Smith'], 'Meg Ryan': ['You have got mail', 'Sleepless in Seattle'], 'Tom Hanks': ['You have got mail', 'Apollo 13', 'Sleepless in Seattle', 'Catch Me If You Can'], 'Dustin Hoffman': ['Sleepers', 'The Lost City'], 'Anthony Hopkins': ['Hannibal', 'The Edge', 'Meet Joe Black', 'Proof']} 
+0

は、私が理解することはできますか? – ettanany

+0

SOユーザの中には、研究努力を示さない質問には答えてはいけないと考えるユーザーもいます。 – vaultah

+0

私はごめんなさい@vaultahですが、「どこから始めたらいいのかわかりません」と私たちは助けてくれると思います! – ettanany

1

これはあなたが始める必要があります。

line = "a, b, c, d" 
result = {} 
names = line.split(", ") 
actor = names[0] 
movies = names[1:] 
result[actor] = movies