字典理解将值设置为非

2024-04-23 06:47:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要遍历字典中的每个值,并将“”替换为无。我做错什么了?在

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 == ''}

结果

^{pr2}$

Tags: comcitydata字典emailphonecodezip
2条回答

你不能在字典理解中做作业。在

您需要的是一个三值运算符,它将空字符串值替换为None,并按原样返回其他值:

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

参考文献:

Does Python have a ternary conditional operator?

您希望使用速记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()}

相关问题 更多 >