2016-06-13 11 views
0

もっと分かりやすいように変更されました。Python dict.getメソッドは、キーにいくつかの関数を適用します。

私はPythonのdict.getメソッドをテストしており、そのための助けが必要です。

私がしようとしているのは、いくつかの値を持つ辞書があるということです。私は辞書の値にメソッドを適用した後にその値を別の辞書にコピーしようとしています。ここでのコードはnametest_dictに存在する場合、それにto_alphanumeric関数を適用し、それ以外の場合は、デフォルト値を保存result_dictに保管していることである私がしたい

test_dict = {"name" : "test-12312", "phone" :"123456"} 

result_dict = {} 

result_dict['name'] = to_alphanumeric(test_dict.get('name', "Default-123")) 

どのように見えるかです。私が従っているアプローチは、値が存在しない場合はDefault-123にも適用されます。キーtest_dict['name']が存在する場合のみ、to_alphanumericメソッドを適用します。

デフォルト値は小文字であり、値が存在する場合のみ大文字に変換することを心に留めておくとよいでしょう。

+0

のようなものを試してみてください。私は望んでいない。 – hjelpmig

+0

'defaultdict'を使うか、辞書の' setdefault'メソッドを使ってみましょう – mic4ael

答えて

0

値はその後、空でない場合は、次の

result_dict['name'] = test_dict.get('name', '').upper() or 'Default' 
0

これも同様に大文字にデフォルト値を変換します。この

test_dict = defaultdict(lambda: 'default') 
test_dict.get('name').capitalize() 

または

test_dict = {} 
test_dict.setfdefault('default') 
test_dict.get('name').capitalize() 
+0

これは、それぞれのキーが型に応じて異なったデフォルト値を持つ可能性があるということです。例えば、名前は「Default」を有し、電話は「0987654321」を有することができる。 – hjelpmig

+0

2つの引数を受け入れる 'to_alphanumeric'関数を実装してみませんか? 'to_alphanumeric'は他の多くの場所でも使われていて、設計されているので、' to_alphanumeric(test_dict、arg_name) 'は関数内でそのキーが存在し、その正しい値を返すかどうかをチェックすることができます。 – mic4ael

+0

ちょうど文字列を扱う。これを行うには、多くのリファクタリングが必要です。 – hjelpmig

関連する問題