【发布时间】:2019-10-23 21:47:15
【问题描述】:
对于元组的元组,我想检查所有内部元组的长度是否相同。
我尝试过比较索引,但它不起作用。
p = ((1,1,1),(1,0,1,1),(1,1,1))
def lab(x):
if type(x) != tuple:
return False
else:
z = len(x[0])
for y in x:
if len(y) < 3 and len(y[1:]) != z:
return False
else:
while x[0][0] != 1:
return False
while x[len(x)-1][-1] != 1:
return False
else:
return True
print(lab(p))
基本上,您可以看到第二个元组有 4 个元素,而不是 3 个,我只是希望函数返回 false 而不是 True,因为第二个元组的大小与第一个元组不同,它应该返回 false,因为那发生了。
我试图建立一个迷宫和它的平方,就像所有的正方形一样,所有的部分都有相同的大小,所以我需要所有的元组有相同的长度,第一个元组的第一个数字必须是 1,最后一个数字最后一个元组的 1 也是为了构建这个迷宫。
Ps:我只需要长度部分,其余的都处理好了,但如果你有任何关于如何改进这一点的想法,我会全力以赴。
【问题讨论】:
-
对不起,从你的问题我无法理解你想要达到的目标。
-
当你的意思是
if时,你似乎在使用while。 -
乍一看,至少
return "False"没有多大意义,应该换成return False。 -
为什么
else:块不使用y? -
您可以
assert len(set([len(tup) for tup in x])) == 1,然后完成剩下的工作。您是否在为其余的工作寻求帮助?还是只是长度检查?
标签: python python-3.x function tuples maze