首页 > 解决方案 > 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。

我需要对我的代码进行哪些更改才能实现这一目标?

标签: pythonlist-comprehension

解决方案


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}

推荐阅读