我想检查以下元组列表:
C = [[2, 2, 1, 3], [2, 2, 2, 1], [3, 3, 0, 3], [0, 2, 0, 3]] D = [[2, 2, 1, 3], [2, 2, 2, 1], [3, 3, 0, 3]]
我想检查列表的长度是否为 n,其中 n>0 并且是一个整数,并且该列表也有长度为 n 的列表。 检查条目是否为 0 到 n-1 之间的整数
条件:
- 列表的长度为 n
list里面只有数字元素列表
列表中的列表长度为n
里面的列表有0到n-1之间的元素
列表的元素都是整数
因此,对于 C 来说,它是长度为 4 的列表,它具有长度为 4 的列表,并且都是 0 到 4 之间的整数,因此该函数应该输出 true。
对于 D 它将是错误的,因为列表的长度为 3,而内部列表的长度为 4。
有人可以帮忙吗?
我已经尝试过 isinstance 命令,但我的代码中有很多命令变得非常困惑。有更简单的方法吗?
这是我目前所拥有的,还不完整。
def checklist(X):
n = len(X) #check len
n = int #check it is int
if n>0: #condition n>0
if isinstance(X,list): #check if x is list
for i in range(n) :
if isinstance(X[i],list): #check if the X contains list
a = X[[i]]
if isinstance(a, int)
请您参考如下方法:
使用带有嵌套列表理解的嵌套all
C = [[2, 2, 1, 3], [2, 2, 2, 1], [3, 3, 0, 3], [0, 2, 0, 3]]
n = 4
def is_valid(C, n):
valid_values = range(n)
return all(all(x in valid_values for x in l) and len(l) == n for l in C) and len(C) == n
print is_valid(C, n)
输出:
True
