python内置函数all使用的坑
2024-10-09 23:43:23
在代码的改造过程中,因为忽略了一个问题导致数据异常,在改造的过程中以及后续的review中都没注意到这个问题,单元测试也没有覆盖到,记录如下。这个坑在于all的使用上,如果参数为空元组或空列表时,返回值为True,这是要特别注意的地方。改造时忽略了这个地方,应该这样写就对了:
if not codexes or codex in codexes
原代码:
result = set()
for student_id, codex in rs:
conditions = []
if codexes:
conditions.extend([codex in codexes])
if all(conditions):
result.add(student_id)
return result.intersection(set(student_ids))
新代码改为如下引出问题:
result = set()
for student_id, codex in rs:
if (codexes and codex in codexes):
result.add(student_id)
return result.intersection(set(student_ids))
修补后正确应该为:
result = set()
for student_id, codex in rs:
if not codexes or codex in codexes:
result.add(student_id)
return result.intersection(set(student_ids))
最新文章
- Opencv算法学习二
- 关于STM32-MDK中preprocessor symbols解释
- MongoDB Shard部署及Tag的使用
- CentOS5下配置JDK1.6+TOMCAT6
- JSF 2 multiple select dropdown box example
- leetcode 逆转字符串 当年的第一题,今天再写一遍,物是人非
- AngularJS之使用控制器封装业务逻辑
- HTML确认密码
- Java 容器在实际项目中的应用
- Linux学习历程——Centos 7 账户管理命令(用户组篇)groupadd groupmod groupdel
- 网络知识 - 简易的自定义Web服务器
- 蓝牙BLE设备断线回连分析
- laravel使用JSON 类型方式进行存储
- SpringBoot返回json格式到浏览器上,出现乱码问题
- [LeetCode] 96. Unique Binary Search Trees(给定一个数字n,有多少个唯一二叉搜索树) ☆☆☆
- 如何利用javascript获取表单中select下拉列表中所选中项的值value
- Java多媒体编程应用
- Servlet MVC 项目实战实例
- 【CodeForces】870 F. Paths
- 错误:undefined reference to `__gxx_personality_v0'