これを試すことができます:print t, x[t]
またはこれ:
for key, val in x.items():
if key > 2:
print key, val
印刷しているペアのみを新しい辞書に取得する場合は、そこに配置する必要があります。
newdict = {}
for key, val in x.items():
if key > 2:
print key, val
# put all the keys > 2 into the new dict
newdict[key] = val
もちろん、その解決策は挿入時に印刷されます。単なる小さなスクリプト以上のものを実行している場合は、機能を分割することでより多くのユーティリティが得られ、特定の関数が 1 つだけのことを行うようにします。
def filter_dict(x):
newdict = {}
for key, val in x.items():
if key > 2:
# put all the keys > 2 into the new dict
newdict[key] = val
def pretty_print(dct):
for k, v in dct.items():
print k, v
filtered = filter_dict(x)
pretty_print(dct)
もちろん、これは単にデバッグしている場合には当てはまりません。また、作成しているプログラムの大きさに依存する方法もあります。十分に単純なことをしている場合は、余分な柔軟性が得られます。与えられたものが何をするのかを正確に把握するための余分な努力のために、機能を分割することは失われます. つまり、一般的にはそうすべきです。
さらに、Python で単純な比較でリストをフィルタリングする最も慣用的な方法は、dict 内包表記を使用することです (Python 2.7/3.0 の新機能):
filtered = {key: val for key, val in x if key > 2}