python - 如果有多个数字同时忽略 "0",我该如何返回 false ?

标签 python sudoku

这是一个更大的程序中解决数独难题的函数。此时,如果数字出现超过 1 次,我希望函数返回 false,除非该数字为零。为了实现这个目标我还缺少什么?

L 是数字列表

l =[1,0,0,2,3,0,0,8,0]  

def alldifferent1D(l):
    for i in range(len(l)):
        if l.count(l[i])>1 and l[i] != 0:  #does this do it?
            return False
    return True     

最佳答案

假设列表长度为 9,您可以忽略此处使用 count 的低效率(使用辅助数据结构 - Counter 等可能比运行 花费更长的时间。 count() 几次)。您可以更自然地编写表达式来表示它们都是不同的:

def alldifferent1D(L):
    return all(L.count(x) <= 1 for x in L if x != 0)

这还可以节省对所有 0 的调用 count()

关于python - 如果有多个数字同时忽略 "0",我该如何返回 false ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27351391/

相关文章:

php - 从其他用户那里获取节奏盒信息

python - 使用 python StandardScaler 进行特征缩放会产生负值

python - 构建网络以检测 CT 扫描中的裂缝

python - 递归调用中的退出子句

python - 如何为 GradientDescentOptimizer 设置自适应学习率?

artificial-intelligence - 多数独AI方法

matlab - 在 MATLAB 中生成随机 'su doku' 类型矩阵

algorithm - 我的启发式算法是否正确? (数独求解器)

java - 数独游戏序列化问题

python - 如何可视化Caffe参数?