for-loop - 检查元组中的元组中的元素
问题描述
所以基本上我对此感到害怕,因为,我想检查主元组中的所有元组是否有任何负数,如果有,我希望函数返回 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))
解决方案
代码有很多错误,但阻碍你更进一步的问题是,当你从函数返回时,函数将无法继续。因此,如果要检查数据结构中的所有元素,如果其中任何一个为负数,则返回 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
推荐阅读
- docker - 设置 Elastic Enterprise Search 和 App Search - Docker - ELK
- query-optimization - 如何解决 Keystone.js 中的“N+1”问题
- pdf - 使用 openssl 在 pdf 文档上使用自签名证书进行签名
- python - 使用 Keras 检索 ANN 输出层的线性叠加值存在问题
- mysql - Mysql如何为现有行创建递增ID
- javascript - JavaScript 未显示在命令中
- python-3.x - 将MongoDB的ObjectId作为字符串转换为时间戳的Python方法
- f# - 不懂 Suave API,总是返回相同的结果
- c++ - 模板参数包成对剥离args
- angular6 - Angular 组件调试