首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元组内部元组的问题

元组内部元组的问题
EN

Stack Overflow用户
提问于 2019-10-24 05:47:15
回答 2查看 182关注 0票数 0

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

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

代码语言:javascript
复制
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:我只需要长度的部分,其余的都会处理,但如果你有任何关于如何改善这一点的想法,我洗耳恭听。

EN

回答 2

Stack Overflow用户

发布于 2019-10-24 05:50:52

你可以用一行代码来检查:

代码语言:javascript
复制
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

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

票数 2
EN

Stack Overflow用户

发布于 2019-10-24 06:02:43

如果您想检查所有内部元组/列表是否具有相同的长度:

代码语言:javascript
复制
>>> 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([])
True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58531406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档