Skip to main content
 首页 » 编程设计

python之检查列表列表的函数是否具有 0 到 n 之间的所有整数元素,并且列表的长度都是给定的

2025年05月04日13grandyang

我想检查以下元组列表:

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