Python-Pandas中如何让自定义函数支持空值(空字符串、None)传递?
问题分析与解决
你的函数当前逻辑是判断第一个参数是否存在于第二个参数中,而不是判断第一个参数是否存在于「第二个及之后的所有参数」里。比如你调用check('Y', 'N', '')时,args是('Y', 'N', ''),函数实际执行的是'Y' in 'N',自然不会匹配空字符串或None。
修复后的函数
修改函数逻辑,将第二个及之后的所有参数作为判断范围:
def check(*args): # 确保至少传入2个参数,避免索引越界 if len(args) < 2: return False # 判断第一个参数是否在后续所有参数组成的元组中 return args[0] in args[1:]
测试验证
- 调用
check('', 'Y', 'N', '')→ 返回True(空字符串存在于后续参数中) - 调用
check(None, 'Y', None, 'N')→ 返回True(None存在于后续参数中) - 调用
check('Y', 'N', '')→ 返回False('Y'不在后续参数里)
如果你的需求是让第二个参数本身包含空值(比如传入check('Y', ('N', ''))),那原函数无需修改,直接传入包含空值的集合作为第二个参数即可。
内容的提问来源于stack exchange,提问作者dragnblow
相关产品推荐
相关产品推荐

