から特定のキーと値のペアを含むPythonの辞書を作成し、私は次のようになりますいくつかのコードがあります。別の辞書
d = {'foo': True, 'bar': 42, 'baz': '!'}
a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}
は確かにこれを表現するためのより良い方法がありますが。私は実際に辞書のcopy
方法は、新しい辞書に含まれるキーを受け入れることを期待してドキュメントをお読みください。
# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
私は、この目的のために関数を書くことができます:
copydict = lambda dct, *keys: {key: dct[key] for key in keys}
a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')
が良くあります上記よりもソリューションですか?
なぜa、b、cのリスト(またはセット)を使用しないのですか?あなたが必要なときにdで価値を冷たく見てください。 – maxy
私はDjangoの 'urlencode'関数(' urllib.urlencode'のように、辞書を受け入れる)に 'a'、' b'、 'c'を渡しています。 – davidchambers
@BlaXpirit:あなたは "No"を含む答えを書くべきです。 (HTMLコメント付きの最小サイズまでのパッド)ので、私たちはすべて狂ってそれを投票することができます。 –