对于元组的元组,我想检查所有内部元组是否具有相同的长度。
我试过比较索引,但不起作用。
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:我只需要长度的部分,其余的都会处理,但如果你有任何关于如何改善这一点的想法,我洗耳恭听。
发布于 2019-10-24 05:50:52
你可以用一行代码来检查:
def lab(tups):
return len(set([len(tup) for tup in tups])) == 1
print(lab(((1,1,1),(1,0,1,1),(1,1,1)))) # False
print(lab(((1,1,1),(1,1,1),(1,1,1)))) # True..。当然,您可能希望为空元组添加错误检查,等等
发布于 2019-10-24 06:02:43
如果您想检查所有内部元组/列表是否具有相同的长度:
>>> f = lambda l: all([len(t) == len(l[0]) for t in l])
>>> f([(1,1,1),(1,1,1),(1,1,1)])
True
>>> f([(1,1,1),(1,0,1,1),(1,1,1)])
False
>>> f([])
Truehttps://stackoverflow.com/questions/58531406
复制相似问题