字典中的条件键 - python

8 投票
1 回答
7507 浏览
提问于 2025-04-18 12:58

我有一个函数叫做 create_group,它有一个可选的参数 user_device=None。如果给 user_device 提供了一个不是 None 的值,我希望一个字典 targeting_spec 包含键值对 "user_device": user_device;如果没有提供非 None 的值,我就不想让 targeting_spec 包含这个键值对。

我现在的做法是:

def create_group(..., user_device=None, ...):
    ...
    targeting_spec = {
        ...
    }
    if user_device:
        targeting_spec["user_device"] = user_device
    ...

这样做可以吗?如果不行,那应该怎么做呢?我问这个是因为我觉得这应该是 Python 喜欢优雅解决的问题。

1 个回答

5

你的方法没问题,前提是你不需要处理空值。

比如可以传入 user_device=0。这里的 user_device 不是 None,但它 确实 是一个“假值”。

如果你需要处理除了 None 以外的“假值”,可以用 is not None 来进行测试:

if user_device is not None:
    parameters["user_device"] = user_device

撰写回答