python - Python:如何找到 1 到 9 之间的缺失数字?
问题描述
我需要接受 3 个不同的输入来搜索数字 1 到 9。如果它们在 1 到 9 之间不存在,我需要返回剩余的值。
我的代码如下,但它不起作用。
def remaining_values(lst1, lst2, lst3):
legal_lst = [1, 2, 3, 4, 5, 6, 7, 9]
lst = lst1 + lst2 + lst3
return [x for x in range(lst[0], lst[-1]+1)
if x not in lst]
它应该通过这个测试:
def remaining_values():
assert(legal_values([1, 2, 3], [1, 2, 3], [7, 8, 9]) == [4, 5, 6])
所以如果列表有 123 和 789,那么它应该返回 456。
我需要对我的代码进行哪些更改才能实现这一目标?
解决方案
You can use sets to find missing numbers in a range:
legal_lst = [1, 2, 3, 4, 5, 6, 7, 9]
print(set(range(1,10)) - set(legal_lst))
Output
{8}
推荐阅读
- linux - Ubuntu 20.04 上的 PhpStorm 后退导航中断
- swift - 我想改变 tableview 的 rowHeight,同时改变方向它在模拟器中工作而不是在真实设备中
- fastapi - FastAPI graphql 订阅
- r - 如何在使用 tidymodels 时取消缩放和理解 glmnet 系数?
- mongodb - MongoDB Spring 聚合排除不起作用
- powershell - PowerShell Set-Partition -NewDriveLetter 返回 Set-Partition:请求的访问路径已在使用中。活动 ID {
- javascript - 二进制插入,数组的后半部分没有被递归调用?
- arrays - mongoose - 如何使用带有请求参数数组的 $in 进行 .find() 现在它只返回空数组
- javascript - 类型错误:fs.reddirSync 不是函数
- python - ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 1)