2016-04-24 3 views
0

私は、特定の数の鍵e.iを持つ主要な辞書を持っています。1つの辞書から別の辞書に鍵とそれぞれの値を転送する

dict1 = {NAME: John, Second_Name: Doe} 

私はこのディクテーションのシリーズを持っており、すべてがリストの中にあります。 このリストをループして辞書を持つリストを作成する方法はありますか?たとえば、キーNAMEとそれぞれの値だけを使用してリストを作成する方法はありますか?これを行う簡単な方法はありますか?

PS:私のプログラムでは、例としてdict1を使用しています。私は多くのキーでdictsを扱っています。

+0

'carregamento [" geonames "]'に含まれる値は何ですか? – ForeverWintr

+0

ForeverWintr私は問題を考え出した。ディクテーションのリストはリストの中に作成されているので、プログラムはその助けを集めていました。 あなたと@zondoへのすべての助けをありがとう –

答えて

1

私は、リストの内包表記を使用したい:

[{'NAME': d['NAME']} for d in dictionaries] 

NAMEが見つからない場合KeyErrorが発生します:

list_of_dicts = [ 
    {'NAME': 'John', 'Second_Name': 'Doe'}, 
    {'NAME': 'Tim', 'Second_Name': 'Doh'}, 
    {'NAME': 'Mark', 'Second_Name': 'Dough'}, 
] 

names_only = [{'NAME': d['NAME']} for d in list_of_dicts] 
+0

それは良い答えのようです。ただ1つではなく、一連のキーを追加したい場合は、このコードに対してどのような変更を行う必要がありますか? –

+1

@NunoChicória:同じ考え。あなたは 'for'ループのふりをします。しかし、長い間あなたが望む辞書を作成することができます。 '['NAME':d ['NAME']、 'SecondName':d ['SecondName']}' – zondo

+0

@zondoこのエラーが出ます(TypeError:リストインデックスはstrでなく整数でなければなりません)。私はこれをどうすれば回避できるのか知っていますか? –

0

あなたはlist comprehensionを使用することができます。あなたはこのように代わりにデフォルトを使用することができます。各辞書について

[{'NAME': d.get('NAME', 'unknown')} for d in dictionaries] 

を、ddictionariesで、それはd['NAME']の値を持つ単一のキー、NAME、と辞書を作成します。

関連する問題