首页 > 解决方案 > 检查元组中的元组中的元素

问题描述

所以基本上我对此感到害怕,因为,我想检查主元组中的所有元组是否有任何负数,如果有,我希望函数返回 False,如果没有,我希望它返回 True。问题是它只检查到第二个元组的第一个元素,我无法弄清楚代码到底有什么问题。因此,如果有人可以帮助我,我将不胜感激。

 maze = ((1,3),(4,-1))

def lab2(maze):
    for i in range(len(maze)):
       for y in maze[i+1]:
           if maze[i][y] < 0:
               return False
           else:
               return True

print(lab2(maze))

顺便说一句,我忘了提到我还想检查是否有重复的元组,如果有,我希望函数返回 false,但它不起作用

maze = ((1,2),(3,4),(3,4))

def eh_conj_posicoes(maze):
    for row in maze:
        for el in row:
            if el < 0:
                return False
    tup = ()
    for row2 in maze:
        tup = tup + maze[0]
        if row2[1:] is tup:
            return False
        else:
            tup = tup + row2
    return True

print(eh_conj_posicoes(maze))

标签: for-looptuplesmaze

解决方案


代码有很多错误,但阻碍你更进一步的问题是,当你从函数返回时,函数将无法继续。因此,如果要检查数据结构中的所有元素,如果其中任何一个为负数,则返回 False,只有在检查完所有元素后才返回 True。现在,只检查一个元素,函数返回并且不继续。

def lab2(maze):
    for row in maze:
        for el in row:
            if el < 0: 
                return False

    # Now all for loops have completed 
    # without returning False (i.e. no negative nubmer)
    # So, now we can return True
    return True

推荐阅读