のリストから値のリストを取得:のpython私はこのような辞書のリストを持っている辞書
[{'value': 'apple', 'blah': 2}, {'value': 'banana', 'blah': 3} , {'value': 'cars', 'blah':4}]
私はこれを行うには['apple', 'banana', 'cars']
いただきました最善の方法をしたいですか?すべての辞書を想定し
のリストから値のリストを取得:のpython私はこのような辞書のリストを持っている辞書
[{'value': 'apple', 'blah': 2}, {'value': 'banana', 'blah': 3} , {'value': 'cars', 'blah':4}]
私はこれを行うには['apple', 'banana', 'cars']
いただきました最善の方法をしたいですか?すべての辞書を想定し
がvalue
キーを持っている、あなたが書くことができます(リストがl
命名されたと仮定した場合)
[d['value'] for d in l]
value
が失われる可能性がある場合、あなたは
[d['value'] for d in l if 'value' in d]
キーの欠損値を処理するには、d.get( "key_to_lookup"、 "alternate_value")を使用することもできます。それから、d [lのd.get( 'value'、 'alt')]のようになります。値がキーとして存在しない場合、単に 'alt'を返します。 – abhinav
を使用することができます。ここですmap()とラムダ関数を使用して別の方法:
>>> map(lambda d: d['value'], l)
ここで、lはリストです。 私はこの方法を "セクシー"と見ますが、リストの理解度を使ってやります。
アップデート:「の値が」キー使用として不足しているかもしれないと場合 :
>>> map(lambda d: d.get('value', 'default value'), l)
がアップデート:私もラムダの大ファンではない、私は物事に名前を付けることを好むが...この
>>> import operator
>>> map(operator.itemgetter('value'), l)
私はさらに行くと、明示的に私が達成したいものを言う唯一の機能を作成します:私はこのことを念頭に置いてそれを行うだろうかある
>>> import operator, functools
>>> get_values = functools.partial(map, operator.itemgetter('value'))
>>> get_values(l)
... [<list of values>]
1)何を試しましたか?あなたのコードを含めてください。 2)「最善」とは、この文脈では無意味な言葉です。最も良いのは、Oracleライセンス製品の最速、最小メモリ、またはほとんどの使用を意味します。私たちはあなたが「最高の」と言っていると思うものが何かを知りません。また、投稿していないコードについてはコメントできません。 –
たぶん、彼はちょうどそれを行うために "pythonic"の方法であることを尋ねたかった –
Mr @ S.Lott、コードがないので、SO上に非常に多くの質問がありますが、 xまたはyのために答えを投稿するのではなく、この投稿を無視するだけです。 :v何年も前。 –