Python Don';如果dict';没有
我的意见如下:Python Don';如果dict';没有,python,dictionary,Python,Dictionary,我的意见如下: kwargs = { "min": values.get("min"), "max: values.get("max"), } 但我不希望里面没有价值。所以当min或max为None时,我想跳过它 有没有比简单地做更好的方法 if values.get("min") is not None: #add to dict 我也尝
kwargs = {
"min": values.get("min"),
"max: values.get("max"),
}
但我不希望里面没有价值。所以当min或max为None时,我想跳过它
有没有比简单地做更好的方法
if values.get("min") is not None:
#add to dict
我也尝试过这个方法,但这也不是一个好方法:
kwargs = {
"min_hum": (values.get("min") if values.get("min") is not None),
"max_hum": (values.get("max") if values.get("max") is not None),
}
>>> {k: v for k, v in src.items() if v is not None}
{'min': 42}
你可以使用听写理解:
values = {'min': None, 'max': 6}
kwargs = {k: v for (k, v) in values.items() if v}
print(kwargs)
输出:
{'max': 6}
或者,如果还需要筛选关键帧,可以使用walrus操作符:
kwargs = {k: v for k in ('min', 'max') if (v := values.get(k)) is not None}
你可以使用听写理解:
values = {'min': None, 'max': 6}
kwargs = {k: v for (k, v) in values.items() if v}
print(kwargs)
输出:
{'max': 6}
或者,如果还需要筛选关键帧,可以使用walrus操作符:
kwargs = {k: v for k in ('min', 'max') if (v := values.get(k)) is not None}
您可以只包含这些值,然后在第二步中删除它们
>>> src = {"min": 42, "max": None}
>>> tgt = {"min_hum": src.get("min"), "max_hum": src.get("max")}
>>> tgt = {k: v for k, v in tgt.items() if v is not None}
>>> tgt
{'min_hum': 42}
。。。或者使用dict理解跳过它们(如果键不相同,可能需要键映射列表):
当然,如果src
和tgt
中的键相同,您可以使用第一种方法的第二步:
kwargs = {
"min_hum": (values.get("min") if values.get("min") is not None),
"max_hum": (values.get("max") if values.get("max") is not None),
}
>>> {k: v for k, v in src.items() if v is not None}
{'min': 42}
您可以只包含这些值,然后在第二步中删除它们
>>> src = {"min": 42, "max": None}
>>> tgt = {"min_hum": src.get("min"), "max_hum": src.get("max")}
>>> tgt = {k: v for k, v in tgt.items() if v is not None}
>>> tgt
{'min_hum': 42}
。。。或者使用dict理解跳过它们(如果键不相同,可能需要键映射列表):
当然,如果src
和tgt
中的键相同,您可以使用第一种方法的第二步:
kwargs = {
"min_hum": (values.get("min") if values.get("min") is not None),
"max_hum": (values.get("max") if values.get("max") is not None),
}
>>> {k: v for k, v in src.items() if v is not None}
{'min': 42}
也许这就是你的答案:
kwargs = {key: value for key, value in values.items() if value}
或
也许这就是你的答案:
kwargs = {key: value for key, value in values.items() if value}
或
您可以使用字典理解来删除之后的
None
值。您可以使用字典理解来删除之后的None
值。如果v不是None,最好执行,以不同时删除0
、False
或“
列表末尾的if v
将删除所有错误值(False
、0
、空字符串、空列表等),而不仅仅是None
。相反,如果v不是None,您可能需要。如果v不是None,最好不要同时删除0
、False
或”
列表末尾的如果v
将删除所有错误值(False
、0
、空字符串、空列表等),不仅仅是无
。相反,如果v不是None,您可能需要。