首页 > 解决方案 > 元组内部的元组问题

问题描述

对于元组的元组,我想检查所有内部元组是否具有相同的长度。

我试过比较索引,但它不起作用。

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,最后一个数字的最后一个数字为了构建这个迷宫,tuple 也必须为 1。

Ps:我只需要长度部分,剩下的就处理好了,但是如果你对如何改进这个我有任何想法。

标签: pythonpython-3.xfunctiontuplesmaze

解决方案


您可以使用单线检查这一点:

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

...当然,您可能希望为空元组等添加错误检查


推荐阅读