2016-10-22 9 views
0

辞書のすべての値をループし、 ''をNoneに置き換える必要があります。私は間違って何をしていますか?辞書の理解度をNoneに設定

data = {'phone': '', 'email': '[email protected]', 'fname': 'Joe', 'zip_code': '', 'address2': '', 'address1': '', 'city': '', 'state': '', 'lname': 'Yang'} 

clean = {k: v=None for k, v in data.items() if v == ''} 

結果

clean = {k: v=None for k, v in data.items() if v == ''} 
       ^
SyntaxError: invalid syntax 

答えて

2

:リファレンス

clean = {k: None if v == '' else v for k, v in data.items()} 
#   ^^^^^^^^^^^^^^^^^^^^^^ 

省略表現を使用する - 値式として、条件付きではない(実際にはキー全体)。

data = {'phone': '', 'email': '[email protected]', 'fname': 'Joe', 'zip_code': '', 'address2': '', 'address1': '', 'city': '', 'state': '', 'lname': 'Yang'} 
clean = {k: None if v == '' else v for k, v in data.items()} 
3

あなたは辞書理解に割り当てを行うことはできません。何をしたい

Noneと空の文字列値を置き換え、あるとして他人を返し三項演算子です:あなたがしたい

Does Python have a ternary conditional operator?

関連する問題