这是一个更大的程序中解决数独难题的函数。此时,如果数字出现超过 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/