python-3.x - 如果值是真实的,则将键,值添加到 dict
问题描述
我想构建一个字典,但只有在项目的值是真实的情况下才添加项目
我执行以下操作
my_dict = {
"key1": convert_value("foo"),
"key2": convert_value(None),
"key3": convert_value(""),
"key4": "bar",
"key5": ""
}
问题是,我根本不希望键在字典中,如果它的 convert_value() 是假的,例如 key2 和 key3,它们在使用 convert_value() 函数转换后都是空字符串。
生成的字典,原样,看起来像这样
{
"key1": "foo",
"key2": "",
"key3": "",
"key4": "bar",
"key5": ""
}
但是我希望得到的 dict 就是这个
{
"key1": "foo",
"key4": "bar",
"key5": "",
}
没有在转换后返回空值的 keys2 和 3。有什么办法可以直接在施工期间进行吗?
我不能使用 dict 理解,因为在添加之前并非所有值都通过 convert_value 函数(这些键可以有空值),事后删除它们似乎很浪费
编辑:我真正想要的类似于提供如下默认值
"key2": convert_value("foo") or "default",
但不是使用默认值,而是完全删除/跳过这个键。那将是完美的。
解决方案
推荐阅读
- ruby-on-rails - 无法加载此类文件 -- pty (LoadError) 开发环境设置
- r - 我有一个表由许多列中的许多样本组成,如何将每列中每个样本的值减去其列的平均值?
- r - 为什么 fct_inorder 没有按出现顺序显示我的因素?
- sql - 按非 id 字段分组
- javascript - 在手机上禁用 Slider Revolution,但在 ipad 和平板电脑上加载
- react-native - 按下 Backspace 后从焦点 TextInput 中删除状态
- c++ - 像'CV_CAP_PROP_FRAME_COUNT'和'CV_BGR2GRAY'这样的opencv标识符在vs中未定义
- java - 在 Azure 中使用 Selenium 和 Cucumber 的 ERR_CONNECTION_TIMED_OUT
- authentication - 我希望在 Prestashop 1.6 中插入“登录”按钮而不是联系表格
- yui - 如何在 SuiteCRM 中使用 Yahoo YUI