字典理解将值设置为无

时间:2016-10-22 14:21:02

标签: python dictionary

我需要遍历字典中的每个值并将''替换为None。我做错了什么?

data = {'phone': '', 'email': 'joe@hotmail.com', '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 个答案:

答案 0 :(得分:3)

您无法在字典理解中执行作业

你想要的是一个三元运算符,用None替换空字符串值,并按原样返回其他值:

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

参考:

Does Python have a ternary conditional operator?

答案 1 :(得分:2)

你想使用速记-if作为值表达式,而不是条件理解(实际上它将完全删除键)。

data = {'phone': '', 'email': 'joe@hotmail.com', 'fname': 'Joe', 'zip_code': '', 'address2': '', 'address1': '', 'city': '', 'state': '', 'lname': 'Yang'}
clean = {k: None if v == '' else v for k, v in data.items()}