微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:如何查找1到9之间的缺失数字?

如何解决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,3],[1,[7,8,9]) == [4,6])

因此,如果列表包含123和789,则它将返回456。

要实现该目标,我需要更改什么代码

解决方法

您可以使用集合来查找某个范围内的缺失数字:

legal_lst = [1,2,3,4,5,6,7,9]
print(set(range(1,10)) - set(legal_lst))

输出

{8}
,

您的缩进是错误的,我想这是格式问题,请尝试

def remaining_values(lst1,lst2,lst3):
    legal_lst = [1,9] 
    lst = lst1 + lst2 + lst3
    return [x for x in lst if x not in legal_lst]

有关列表理解的更多信息here

,

您可以只使用一组:

def test_sudoku(lst1,lst3):
  legal_lst = [1,9]
  return list(set(lst1+lst2+lst3) - set(legal_lst))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。