python-3.x - python中是否有一种将非空值分配给字典的捷径?
问题描述
是否有更短的方法来编写此代码以避免每次检查都使用 ifs?
first_name = "John"
middle_name = ""
last_name = "Doe"
data = {}
if first_name:
data['first_name'] = first_name
if middle_name:
data['middle_name'] = middle_name
if last_name:
data['last_name'] = last_name
return data
解决方案
您可以先分配所有值而不检查真实性,然后过滤:
data = {
"first_name": first_name,
"middle_name": middle_name,
"last_name": last_name,
}
data = {key: value for key, value in data.items() if value}
但鉴于您正在存储/处理名称:我建议您只对整个名称使用单个变量。无论您对名称的假设是什么,都可能是错误的。
推荐阅读
- c++ - 使用指向抽象基类的指针时,是否有更有效的方法来获取派生类的类型?
- react-native - 构建 Apk 文件与 react-native 中的调试 APK 文件工作不同
- jquery - jQuery:期望赋值或函数调用,而不是看到 ifelse 短语句的表达式?
- java - 在访问事件文件之前等待 WatchService 事件完成处理
- linux - 如何在汇编程序中打开文件并打印其内容?
- python - 在 Windows 10 上的 Python 2.7 中创建 virtualenv,而其他 virtualenv 在 Python 3.8 中工作
- google-cloud-platform - 如何正确查看 bigquery 作业元数据?INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
- parsing - FLEX/YACC 程序未按预期运行:无法从整数序列中获取整数值
- angular - Angular 和 Firebase 云函数返回 null
- python - 如何在python中验证用户输入的随机大小范围