python - 元组内部的元组问题
问题描述
对于元组的元组,我想检查所有内部元组是否具有相同的长度。
我试过比较索引,但它不起作用。
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:我只需要长度部分,剩下的就处理好了,但是如果你对如何改进这个我有任何想法。
解决方案
您可以使用单线检查这一点:
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
...当然,您可能希望为空元组等添加错误检查
推荐阅读
- c# - 在不使用任何文化或包的情况下更改/覆盖验证属性的默认消息
- pyqt - QTableView:防止用户导航离开特定行
- python - Cassandra 的 execute_concurrent 无法正常工作
- docker - 如何让docker重置远程服务器上的图像?
- sql - SQL 格式数字有括号
- less - 如何在 Vuetify 样式中使用手写笔块级导入
- firebase - 我可以将一个孩子设置为 .write: true 而其他孩子受到限制吗?
- sql-server - 除非我重新启动 sql server,否则 SSIS 包需要永远执行
- java - 此服务器不支持 Project facet Dynamic Web Module 4.0
- c++ - 在 Ubuntu 的终端上运行 C++ 文件