入力の検証、特に提供されたデータに必要な属性がすべて指定されているかどうかを確認し、不要な属性を破棄しながら、次のようにしました。
>>> input = {'v1': 'val1', 'a2':'val2', 'a3':'val3'}
>>> print input
{'v1': 'val1', 'a3': 'val3', 'a2': 'val2'}
>>> goodkeys = ['a2', 'a3']
>>> print goodkeys
['a2', 'a3']
>>> output = {}
>>> for a in goodkeys:
... output[a] = input[a]
...
>>>
>>> print output
{'a3': 'val3', 'a2': 'val2'}
もちろん、これは機能します。しかし、これをよりPython的な方法で行うことができるかもしれないと思いました。私は試した:
>>> output = {}
>>> print output
{}
>>> output = { a:v for a in goodkeys for v in input[a] }
>>> print output
{'a3': '3', 'a2': '2'}
>>>
0.5 秒間うまくいったと思っていたのですが、値が間違っていることに気付きました。きれいなPythonメソッドはありますか? では、Python はこれらの値をどこで取得したのでしょうか。