python - if-else 优化:对多类型对象的完整性检查
问题描述
我有一个对象 X 可能是数据框或无
我想检查 X 是空的还是无。
if x:
# do something
不起作用。
我有这个:
if isinstance(x, pd.DataFrame):
if x.empty:
status = False
else:
status = True
elif x is None:
status = False
else:
status = True
但它似乎可以优化。你有什么建议吗?
解决方案
我们经常做的是从基本情况开始,只有在满足某些条件时才重新分配值。这避免了额外的(并且经常重复的)else 子句。在你的情况下,你可以写:
status = True
if x is None or isinstance(x, pd.DataFrame) and x.empty:
status = False
请注意,效率方面的差异是最小的/不存在的(我们仍然检查 x 是否为 None 并且(如果不是)它是否是 DataFrame 以及它是否为空),但它更简洁,并且可以说,更具可读性。
推荐阅读
- jquery - 如何在django中使用ajax,传递模型对象并将其存储在数据库中而不刷新页面?
- wordpress - 不同的产品如何设置不同的单位?
- java - EventExecutor 在 Netty 中扩展 EventExecutorGroup 是不是一个好的设计?
- encryption - 在我的 MFC 应用程序中使用 crypto++ lib 时出现链接错误
- java - 转换时在正确位置找不到 XML 文件
- html - Html 选择元素选项禁用 microsoft edge
- c++ - 动态分配
- go - 如何读取带有颜色属性的命令输出?
- angular - 订阅 observable 后对象发生变化
- ansible - Playbook 中的 Ansible 变量位于何处