2017-05-10 10 views
0

は、私はPythonでこの辞書を持っている想像しのpython3リスト式

for item in dict['arr']: 
    item['prop1'] = 'foobar' 

しかし、リスト式を使用してこれを行う方法があるかどうかを知りたいと思います。

答えて

3

あなたはできますが、全体の辞書が各ステップ置き換える場合のみ:

dict['arr'] = [ 
    {k: 'foobar' if k == 'prop1' else v for k, v in d.items()} 
    for d in dict['arr']] 

をこれは、あなたがそれらの辞書で他のキーを前提としています。そうしないと、ただ1つのキーを持つ新しい辞書を生成する:あなたがやっているすべての辞書にキーと値のペアを更新している場合は個人的に

dict['arr'] = [{'prop1': 'foobar'} for _ in dict['arr']] 

を、ちょうどあなたの元forループにこだわります。

+0

これは、リストの式が常に新しいリストを返すためです。変数を更新する場合は、すべてのものを上書きする必要があります –

関連する問題