2016-10-22 39 views
0

我需要遍歷字典中的每個值並將無替換爲''。我究竟做錯了什麼?將詞典理解設置值設置爲無

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

你想使用簡寫 - 如果作爲價值表達,則不是理解有條件的(這實際上將被刪除鍵完全)。

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替換爲空字符串值和是返回其他:

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

參考:

Does Python have a ternary conditional operator?